package postgres
import "ariga.io/atlas/sql/postgres"
Index ¶
- Constants
- Variables
- func FormatType(t schema.Type) (string, error)
- func Open(db schema.ExecQuerier) (migrate.Driver, error)
- func ParseType(typ string) (schema.Type, error)
- type AddPKConstraint
- type AddUniqueConstraint
- type ArrayType
- type BitType
- type Cascade
- type CheckColumns
- type Codec
- func (c *Codec) Eval(p *hclparse.Parser, v any, input map[string]cty.Value) error
- func (c *Codec) EvalOptions(p *hclparse.Parser, v any, opts *schemahcl.EvalOptions) error
- func (c *Codec) MarshalSpec(v any) ([]byte, error)
- type CompositeType
- type Concurrently
- type Constraint
- func ExcludeConstraint(name string) *Constraint
- func UniqueConstraint(name string) *Constraint
- func (c Constraint) IsExclude() bool
- func (c Constraint) IsUnique() bool
- type ConvertUsing
- type CurrencyType
- type DiffOptions
- type DomainType
- func (d *DomainType) Ref() *schemahcl.Ref
- func (d *DomainType) SpecName() string
- func (d *DomainType) SpecType() string
- func (d *DomainType) Underlying() schema.Type
- type Driver
- func (d *Driver) CheckClean(ctx context.Context, revT *migrate.TableIdent) error
- func (*Driver) FormatType(t schema.Type) (string, error)
- func (d *Driver) Lock(ctx context.Context, name string, timeout time.Duration) (schema.UnlockFunc, error)
- func (d *Driver) NormalizeRealm(ctx context.Context, r *schema.Realm) (*schema.Realm, error)
- func (d *Driver) NormalizeSchema(ctx context.Context, s *schema.Schema) (*schema.Schema, error)
- func (*Driver) ParseType(s string) (schema.Type, error)
- func (d *Driver) RealmRestoreFunc(desired *schema.Realm) migrate.RestoreFunc
- func (*Driver) ScanStmts(input string) ([]*migrate.Stmt, error)
- func (d *Driver) SchemaRestoreFunc(desired *schema.Schema) migrate.RestoreFunc
- func (d *Driver) Snapshot(ctx context.Context) (migrate.RestoreFunc, error)
- func (*Driver) StmtBuilder(opts migrate.PlanOptions) *sqlx.Builder
- func (d *Driver) Version() string
- type Identity
- type IndexColumnProperty
- type IndexInclude
- type IndexNullsDistinct
- type IndexOpClass
- func (o *IndexOpClass) DefaultFor(idx *schema.Index, part *schema.IndexPart) (bool, error)
- func (o *IndexOpClass) Equal(x *IndexOpClass) bool
- func (o *IndexOpClass) String() string
- func (o *IndexOpClass) UnmarshalText(text []byte) error
- type IndexPredicate
- type IndexStorageParams
- type IndexType
- type IntervalType
- type NetworkType
- type NoInherit
- type NotValid
- type OID
- type OIDType
- type Operator
- type Partition
- type PartitionPart
- type PseudoType
- type RangeType
- type ReferenceOption
- type RowType
- type Sequence
- type SerialType
- func (s *SerialType) IntegerType() *schema.IntegerType
- func (s *SerialType) SetType(t *schema.IntegerType)
- type TextSearchType
- type UUIDType
- type UserDefinedType
- type XMLType
Constants ¶
const ( TypeInt64 = "int64" TypeGeometry = "geometry" )
CockroachDB types that are not part of PostgreSQL.
const ( TypeBit = "bit" TypeBitVar = "bit varying" TypeBoolean = "boolean" TypeBool = "bool" // boolean. TypeBytea = "bytea" TypeCharacter = "character" TypeChar = "char" // character TypeCharVar = "character varying" TypeVarChar = "varchar" // character varying TypeText = "text" TypeBPChar = "bpchar" // blank-padded character. TypeSmallInt = "smallint" TypeInteger = "integer" TypeBigInt = "bigint" TypeInt = "int" // integer. TypeInt2 = "int2" // smallint. TypeInt4 = "int4" // integer. TypeInt8 = "int8" // bigint. TypeXID = "xid" // transaction identifier. TypeXID8 = "xid8" // 64-bit transaction identifier. TypeCIDR = "cidr" TypeInet = "inet" TypeMACAddr = "macaddr" TypeMACAddr8 = "macaddr8" TypeCircle = "circle" TypeLine = "line" TypeLseg = "lseg" TypeBox = "box" TypePath = "path" TypePolygon = "polygon" TypePoint = "point" TypeDate = "date" TypeTime = "time" // time without time zone TypeTimeTZ = "timetz" // time with time zone TypeTimeWTZ = "time with time zone" TypeTimeWOTZ = "time without time zone" TypeTimestamp = "timestamp" // timestamp without time zone TypeTimestampTZ = "timestamptz" TypeTimestampWTZ = "timestamp with time zone" TypeTimestampWOTZ = "timestamp without time zone" TypeDouble = "double precision" TypeReal = "real" TypeFloat8 = "float8" // double precision TypeFloat4 = "float4" // real TypeFloat = "float" // float(p). TypeNumeric = "numeric" TypeDecimal = "decimal" // numeric TypeSmallSerial = "smallserial" // smallint with auto_increment. TypeSerial = "serial" // integer with auto_increment. TypeBigSerial = "bigserial" // bigint with auto_increment. TypeSerial2 = "serial2" // smallserial TypeSerial4 = "serial4" // serial TypeSerial8 = "serial8" // bigserial TypeArray = "array" TypeXML = "xml" TypeJSON = "json" TypeJSONB = "jsonb" TypeUUID = "uuid" TypeMoney = "money" TypeInterval = "interval" TypeTSQuery = "tsquery" TypeTSVector = "tsvector" TypeUserDefined = "user-defined" TypeInt4Range = "int4range" TypeInt4MultiRange = "int4multirange" TypeInt8Range = "int8range" TypeInt8MultiRange = "int8multirange" TypeNumRange = "numrange" TypeNumMultiRange = "nummultirange" TypeTSRange = "tsrange" TypeTSMultiRange = "tsmultirange" TypeTSTZRange = "tstzrange" TypeTSTZMultiRange = "tstzmultirange" TypeDateRange = "daterange" TypeDateMultiRange = "datemultirange" )
Standard column types (and their aliases) as defined in PostgreSQL codebase/website.
const ( IndexTypeBTree = "BTREE" IndexTypeBRIN = "BRIN" IndexTypeHash = "HASH" IndexTypeGIN = "GIN" IndexTypeGiST = "GIST" IndexTypeSPGiST = "SPGIST" )
List of supported index types.
const ( GeneratedTypeAlways = "ALWAYS" GeneratedTypeByDefault = "BY_DEFAULT" // BY DEFAULT. )
List of "GENERATED" types.
const ( PartitionTypeRange = "RANGE" PartitionTypeList = "LIST" PartitionTypeHash = "HASH" )
List of PARTITION KEY types.
const DriverName = "postgres"
DriverName holds the name used for registration.
Variables ¶
var ( // MarshalHCL marshals v into an Atlas HCL DDL document. MarshalHCL = schemahcl.MarshalerFunc(codec.MarshalSpec) // EvalHCL implements the schemahcl.Evaluator interface. EvalHCL = schemahcl.EvalFunc(codec.Eval) // EvalHCLBytes is a helper that evaluates an HCL document from a byte slice instead // of from an hclparse.Parser instance. EvalHCLBytes = specutil.HCLBytesFunc(codec) )
DefaultDiff provides basic diffing capabilities for PostgreSQL dialects. Note, it is recommended to call Open, create a new Driver and use its Differ when a database connection is available.
var DefaultPlan migrate.PlanApplier = &planApply{conn: &conn{ExecQuerier: sqlx.NoRows}}
DefaultPlan provides basic planning capabilities for PostgreSQL dialects. Note, it is recommended to call Open, create a new Driver and use its migrate.PlanApplier when a database connection is available.
var TypeRegistry = schemahcl.NewRegistry( schemahcl.WithSpecFunc(typeSpec), schemahcl.WithParser(ParseType), schemahcl.WithSpecs( schemahcl.NewTypeSpec(TypeBit, schemahcl.WithAttributes(&schemahcl.TypeAttr{Name: "len", Kind: reflect.Int64})), schemahcl.AliasTypeSpec("bit_varying", TypeBitVar, schemahcl.WithAttributes(&schemahcl.TypeAttr{Name: "len", Kind: reflect.Int64})), schemahcl.NewTypeSpec(TypeVarChar, schemahcl.WithAttributes(schemahcl.SizeTypeAttr(false))), schemahcl.AliasTypeSpec("character_varying", TypeCharVar, schemahcl.WithAttributes(schemahcl.SizeTypeAttr(false))), schemahcl.NewTypeSpec(TypeChar, schemahcl.WithAttributes(schemahcl.SizeTypeAttr(false))), schemahcl.NewTypeSpec(TypeCharacter, schemahcl.WithAttributes(schemahcl.SizeTypeAttr(false))), schemahcl.NewTypeSpec(TypeBPChar), schemahcl.NewTypeSpec(TypeInt2), schemahcl.NewTypeSpec(TypeInt4), schemahcl.NewTypeSpec(TypeInt8), schemahcl.NewTypeSpec(TypeInt), schemahcl.NewTypeSpec(TypeInteger), schemahcl.NewTypeSpec(TypeSmallInt), schemahcl.NewTypeSpec(TypeBigInt), schemahcl.NewTypeSpec(TypeText), schemahcl.NewTypeSpec(TypeBoolean), schemahcl.NewTypeSpec(TypeBool), schemahcl.NewTypeSpec(TypeBytea), schemahcl.NewTypeSpec(TypeCIDR), schemahcl.NewTypeSpec(TypeInet), schemahcl.NewTypeSpec(TypeMACAddr), schemahcl.NewTypeSpec(TypeMACAddr8), schemahcl.NewTypeSpec(TypeCircle), schemahcl.NewTypeSpec(TypeLine), schemahcl.NewTypeSpec(TypeLseg), schemahcl.NewTypeSpec(TypeBox), schemahcl.NewTypeSpec(TypePath), schemahcl.NewTypeSpec(TypePoint), schemahcl.NewTypeSpec(TypePolygon), schemahcl.NewTypeSpec(TypeDate), schemahcl.NewTypeSpec(TypeTime, schemahcl.WithAttributes(schemahcl.PrecisionTypeAttr()), formatTime()), schemahcl.NewTypeSpec(TypeTimeTZ, schemahcl.WithAttributes(schemahcl.PrecisionTypeAttr()), formatTime()), schemahcl.NewTypeSpec(TypeTimestampTZ, schemahcl.WithAttributes(schemahcl.PrecisionTypeAttr()), formatTime()), schemahcl.NewTypeSpec(TypeTimestamp, schemahcl.WithAttributes(schemahcl.PrecisionTypeAttr()), formatTime()), schemahcl.AliasTypeSpec("double_precision", TypeDouble), schemahcl.NewTypeSpec(TypeReal), schemahcl.NewTypeSpec(TypeFloat, schemahcl.WithAttributes(schemahcl.PrecisionTypeAttr())), schemahcl.NewTypeSpec(TypeFloat8), schemahcl.NewTypeSpec(TypeFloat4), schemahcl.NewTypeSpec(TypeNumeric, schemahcl.WithAttributes(schemahcl.PrecisionTypeAttr(), schemahcl.ScaleTypeAttr())), schemahcl.NewTypeSpec(TypeDecimal, schemahcl.WithAttributes(schemahcl.PrecisionTypeAttr(), schemahcl.ScaleTypeAttr())), schemahcl.NewTypeSpec(TypeSmallSerial), schemahcl.NewTypeSpec(TypeSerial), schemahcl.NewTypeSpec(TypeBigSerial), schemahcl.NewTypeSpec(TypeSerial2), schemahcl.NewTypeSpec(TypeSerial4), schemahcl.NewTypeSpec(TypeSerial8), schemahcl.NewTypeSpec(TypeXML), schemahcl.NewTypeSpec(TypeJSON), schemahcl.NewTypeSpec(TypeJSONB), schemahcl.NewTypeSpec(TypeUUID), schemahcl.NewTypeSpec(TypeMoney), schemahcl.NewTypeSpec(TypeTSVector), schemahcl.NewTypeSpec(TypeTSQuery), schemahcl.NewTypeSpec(TypeInt4Range), schemahcl.NewTypeSpec(TypeInt4MultiRange), schemahcl.NewTypeSpec(TypeInt8Range), schemahcl.NewTypeSpec(TypeInt8MultiRange), schemahcl.NewTypeSpec(TypeNumRange), schemahcl.NewTypeSpec(TypeNumMultiRange), schemahcl.NewTypeSpec(TypeTSRange), schemahcl.NewTypeSpec(TypeTSMultiRange), schemahcl.NewTypeSpec(TypeTSTZRange), schemahcl.NewTypeSpec(TypeTSTZMultiRange), schemahcl.NewTypeSpec(TypeDateRange), schemahcl.NewTypeSpec(TypeDateMultiRange), schemahcl.NewTypeSpec("hstore"), schemahcl.NewTypeSpec(TypeXID), schemahcl.NewTypeSpec(TypeXID8), ), schemahcl.WithSpecs(func() (specs []*schemahcl.TypeSpec) { for _, t := range []string{ typeOID, typeRegClass, typeRegCollation, typeRegConfig, typeRegDictionary, typeRegNamespace, typeName, typeRegOper, typeRegOperator, typeRegProc, typeRegProcedure, typeRegRole, typeRegType, typeAny, typeAnyElement, typeAnyArray, typeAnyNonArray, typeAnyEnum, typeInternal, typeRecord, typeTrigger, typeEventTrigger, typeVoid, typeUnknown, } { specs = append(specs, schemahcl.NewTypeSpec(t)) } return specs }()...), schemahcl.WithSpecs(func() (specs []*schemahcl.TypeSpec) { opts := []schemahcl.TypeSpecOption{ schemahcl.WithToSpec(func(t schema.Type) (*schemahcl.Type, error) { i, ok := t.(*IntervalType) if !ok { return nil, fmt.Errorf("postgres: unexpected interval type %T", t) } spec := &schemahcl.Type{T: TypeInterval} if i.F != "" { spec.T = specutil.Var(strings.ToLower(i.F)) } if p := i.Precision; p != nil && *p != defaultTimePrecision { spec.Attrs = []*schemahcl.Attr{schemahcl.IntAttr("precision", *p)} } return spec, nil }), schemahcl.WithFromSpec(func(t *schemahcl.Type) (schema.Type, error) { i := &IntervalType{T: TypeInterval} if t.T != TypeInterval { i.F = specutil.FromVar(t.T) } if a, ok := attr(t, "precision"); ok { p, err := a.Int() if err != nil { return nil, fmt.Errorf(`postgres: parsing attribute "precision": %w`, err) } if p != defaultTimePrecision { i.Precision = &p } } return i, nil }), } for _, f := range []string{"interval", "second", "day to second", "hour to second", "minute to second"} { specs = append(specs, schemahcl.NewTypeSpec(specutil.Var(f), append(opts, schemahcl.WithAttributes(schemahcl.PrecisionTypeAttr()))...)) } for _, f := range []string{"year", "month", "day", "hour", "minute", "year to month", "day to hour", "day to minute", "hour to minute"} { specs = append(specs, schemahcl.NewTypeSpec(specutil.Var(f), opts...)) } return specs }()...), )
TypeRegistry contains the supported TypeSpecs for the Postgres driver.
Functions ¶
func FormatType ¶
FormatType converts schema type to its column form in the database. An error is returned if the type cannot be recognized.
func Open ¶
func Open(db schema.ExecQuerier) (migrate.Driver, error)
Open opens a new PostgreSQL driver.
func ParseType ¶
ParseType returns the schema.Type value represented by the given raw type. The raw value is expected to follow the format in PostgreSQL information schema or as an input for the CREATE TABLE statement.
Types ¶
type AddPKConstraint ¶
type AddPKConstraint struct { schema.Change Name string // Name of the constraint. Using *schema.Index // Index to use for the constraint. }
AddPKConstraint to the table using the given index. Note, if the index name does not match the primary-key constraint name, PostgreSQL implicitly renames it to the constraint name.
type AddUniqueConstraint ¶
type AddUniqueConstraint struct { schema.Change Name string // Name of the constraint. Using *schema.Index // Index to use for the constraint. }
AddUniqueConstraint to the table using the given index. Note, if the index name does not match the unique constraint name, PostgreSQL implicitly renames it to the constraint name.
type ArrayType ¶
type ArrayType struct { schema.Type // Underlying items type (e.g. varchar(255)). T string // Formatted type (e.g. int[]). }
ArrayType defines an array type. https://postgresql.org/docs/current/arrays.html
func (*ArrayType) Underlying ¶
Underlying returns the underlying type of the array.
type BitType ¶
BitType defines a bit type. https://postgresql.org/docs/current/datatype-bit.html
type Cascade ¶
Cascade describes that a CASCADE clause should be added to the DROP [TABLE|SCHEMA] operation. Note, this clause is automatically added to DROP SCHEMA by the planner.
type CheckColumns ¶
CheckColumns attribute hold the column named used by the CHECK constraints. This attribute is added on inspection for internal usage and has no meaning on migration.
type Codec ¶
Codec for schemahcl.
func (*Codec) Eval ¶
Eval evaluates an Atlas DDL document into v using the input.
func (*Codec) EvalOptions ¶
EvalOptions decodes the HCL with the given options.
func (*Codec) MarshalSpec ¶
MarshalSpec marshals v into an Atlas DDL document using a schemahcl.Marshaler.
type CompositeType ¶
type CompositeType struct { schema.Type schema.Object T string // Type name. Schema *schema.Schema // Optional schema. Fields []*schema.Column // Type fields, also known as attributes/columns. Attrs []schema.Attr // Extra attributes, such as OID. Deps []schema.Object // Objects this domain depends on. }
CompositeType defines a composite type. https://www.postgresql.org/docs/current/rowtypes.html
func (*CompositeType) SpecName ¶
func (c *CompositeType) SpecName() string
SpecName returns the name of the composite type.
func (*CompositeType) SpecType ¶
func (c *CompositeType) SpecType() string
SpecType returns the type of the composite type.
type Concurrently ¶
Concurrently describes the CONCURRENTLY clause to instruct Postgres to build or drop the index concurrently without blocking the current table. https://www.postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-CONCURRENTLY
type Constraint ¶
Constraint describes a postgres constraint. https://postgresql.org/docs/current/catalog-pg-constraint.html
func ExcludeConstraint ¶
func ExcludeConstraint(name string) *Constraint
ExcludeConstraint returns constraint with type "x".
func UniqueConstraint ¶
func UniqueConstraint(name string) *Constraint
UniqueConstraint returns constraint with type "u".
func (Constraint) IsExclude ¶
func (c Constraint) IsExclude() bool
IsExclude reports if the type is an exclude constraint.
func (Constraint) IsUnique ¶
func (c Constraint) IsUnique() bool
IsUnique reports if the type is a unique constraint.
type ConvertUsing ¶
ConvertUsing describes the USING clause to convert one type to another.
type CurrencyType ¶
A CurrencyType defines a currency type.
type DiffOptions ¶
type DiffOptions struct { ConcurrentIndex struct { Drop bool `spec:"drop"` // Allow config "CREATE" both with "add" and "create" // as the documentation used both terms (accidentally). Add bool `spec:"add"` Create bool `spec:"create"` } `spec:"concurrent_index"` }
DiffOptions defines PostgreSQL specific schema diffing process.
type DomainType ¶
type DomainType struct { schema.Type schema.Object T string // Type name. Schema *schema.Schema // Optional schema. Null bool // Nullability. Default schema.Expr // Default value. Checks []*schema.Check // Check constraints. Attrs []schema.Attr // Extra attributes, such as OID. Deps []schema.Object // Objects this domain depends on. }
DomainType represents a domain type. https://www.postgresql.org/docs/current/domains.html
func (*DomainType) Ref ¶
func (d *DomainType) Ref() *schemahcl.Ref
Ref returns a reference to the domain type.
func (*DomainType) SpecName ¶
func (d *DomainType) SpecName() string
SpecName returns the name of the domain.
func (*DomainType) SpecType ¶
func (d *DomainType) SpecType() string
SpecType returns the type of the domain.
func (*DomainType) Underlying ¶
func (d *DomainType) Underlying() schema.Type
Underlying returns the underlying type of the domain.
type Driver ¶
type Driver struct { schema.Differ schema.Inspector migrate.PlanApplier // contains filtered or unexported fields }
Driver represents a PostgreSQL driver for introspecting database schemas, generating diff between schema elements and apply migrations changes.
func (*Driver) CheckClean ¶
CheckClean implements migrate.CleanChecker.
func (*Driver) FormatType ¶
FormatType converts schema type to its column form in the database.
func (*Driver) Lock ¶
func (d *Driver) Lock(ctx context.Context, name string, timeout time.Duration) (schema.UnlockFunc, error)
Lock implements the schema.Locker interface.
func (*Driver) NormalizeRealm ¶
NormalizeRealm returns the normal representation of the given database.
func (*Driver) NormalizeSchema ¶
NormalizeSchema returns the normal representation of the given database.
func (*Driver) ParseType ¶
ParseType returns the schema.Type value represented by the given string.
func (*Driver) RealmRestoreFunc ¶
func (d *Driver) RealmRestoreFunc(desired *schema.Realm) migrate.RestoreFunc
RealmRestoreFunc returns a function that restores the given realm to its desired state.
func (*Driver) ScanStmts ¶
ScanStmts implements migrate.StmtScanner.
func (*Driver) SchemaRestoreFunc ¶
func (d *Driver) SchemaRestoreFunc(desired *schema.Schema) migrate.RestoreFunc
SchemaRestoreFunc returns a function that restores the given schema to its desired state.
func (*Driver) Snapshot ¶
Snapshot implements migrate.Snapshoter.
func (*Driver) StmtBuilder ¶
func (*Driver) StmtBuilder(opts migrate.PlanOptions) *sqlx.Builder
StmtBuilder is a helper method used to build statements with PostgreSQL formatting.
func (*Driver) Version ¶
Version returns the version of the connected database.
type Identity ¶
Identity defines an identity column.
type IndexColumnProperty ¶
type IndexColumnProperty struct { schema.Attr // NullsFirst defaults to true for DESC indexes. NullsFirst bool // NullsLast defaults to true for ASC indexes. NullsLast bool }
IndexColumnProperty describes an index column property. https://postgresql.org/docs/current/functions-info.html#FUNCTIONS-INFO-INDEX-COLUMN-PROPS
type IndexInclude ¶
IndexInclude describes the INCLUDE clause allows specifying a list of column which added to the index as non-key columns. https://www.postgresql.org/docs/current/sql-createindex.html
type IndexNullsDistinct ¶
IndexNullsDistinct describes the NULLS [NOT] DISTINCT clause.
type IndexOpClass ¶
type IndexOpClass struct { schema.Attr Name string // Name of the operator class. Qualified if schema is not the default, and required. Default bool // If it is the default operator class. Params []struct{ N, V string } // Optional parameters. }
IndexOpClass describers operator class of the index part. https://www.postgresql.org/docs/current/indexes-opclass.html.
func (*IndexOpClass) DefaultFor ¶
DefaultFor reports if the operator_class is the default for the index part.
func (*IndexOpClass) Equal ¶
func (o *IndexOpClass) Equal(x *IndexOpClass) bool
Equal reports whether o and x are the same operator class.
func (*IndexOpClass) String ¶
func (o *IndexOpClass) String() string
String returns the string representation of the operator class.
func (*IndexOpClass) UnmarshalText ¶
func (o *IndexOpClass) UnmarshalText(text []byte) error
UnmarshalText parses the operator class from its string representation.
type IndexPredicate ¶
IndexPredicate describes a partial index predicate. https://postgresql.org/docs/current/catalog-pg-index.html
type IndexStorageParams ¶
type IndexStorageParams struct { schema.Attr // AutoSummarize defines the authsummarize storage parameter. AutoSummarize bool // PagesPerRange defines pages_per_range storage // parameter for BRIN indexes. Defaults to 128. PagesPerRange int64 }
IndexStorageParams describes index storage parameters add with the WITH clause. https://postgresql.org/docs/current/sql-createindex.html#SQL-CREATEINDEX-STORAGE-PARAMETERS
type IndexType ¶
IndexType represents an index type. https://postgresql.org/docs/current/indexes-types.html
type IntervalType ¶
type IntervalType struct { schema.Type T string // Type name. F string // Optional field. YEAR, MONTH, ..., MINUTE TO SECOND. Precision *int // Optional precision. }
IntervalType defines an interval type. https://postgresql.org/docs/current/datatype-datetime.html
type NetworkType ¶
A NetworkType defines a network type. https://postgresql.org/docs/current/datatype-net-types.html
type NoInherit ¶
NoInherit attribute defines the NO INHERIT flag for CHECK constraint. https://postgresql.org/docs/current/catalog-pg-constraint.html
type NotValid ¶
NotValid describes the NOT VALID clause for the creation of check and foreign-key constraints.
type OID ¶
OID is the object identifier as defined in the Postgres catalog.
type OIDType ¶
OIDType defines an object identifier type.
type Operator ¶
type Operator struct { schema.Attr schema.Object // Schema where the operator is defined. If nil, the operator // is not managed by the current scope. Schema *schema.Schema // Operator name. Might include the schema name if the schema // is not managed by the current scope or extension based. // e.g., "public.&&". Name string Attrs []schema.Attr }
Operator describes an operator. https://www.postgresql.org/docs/current/sql-createoperator.html
func NewOperator ¶
NewOperator returns the string representation of the operator.
type Partition ¶
type Partition struct { schema.Attr // T defines the type/strategy of the partition. // Can be one of: RANGE, LIST, HASH. T string // Partition parts. The additional attributes // on each part can be used to control collation. Parts []*PartitionPart // contains filtered or unexported fields }
Partition defines the spec of a partitioned table.
type PartitionPart ¶
An PartitionPart represents an index part that can be either an expression or a column.
type PseudoType ¶
PseudoType defines a non-column pseudo-type, such as function arguments and return types. https://www.postgresql.org/docs/current/datatype-pseudo.html
type RangeType ¶
A RangeType defines a range type. https://www.postgresql.org/docs/current/rangetypes.html
type ReferenceOption ¶
type ReferenceOption schema.ReferenceOption
ReferenceOption describes the ON DELETE and ON UPDATE options for foreign keys.
func (*ReferenceOption) Scan ¶
func (o *ReferenceOption) Scan(v any) error
Scan implements sql.Scanner interface.
func (ReferenceOption) String ¶
func (o ReferenceOption) String() string
String implements fmt.Stringer interface.
type RowType ¶
RowType defines a composite type that represents a table row.
type Sequence ¶
type Sequence struct { schema.Object // Fields used by the Identity schema attribute. Start int64 Increment int64 // Last sequence value written to disk. // https://postgresql.org/docs/current/view-pg-sequences.html. Last int64 // Field used when defining and managing independent // sequences (not part of IDENTITY or serial columns). Name string // Sequence name. Schema *schema.Schema // Optional schema. Type schema.Type // Sequence type. Cache int64 // Cache size. Min, Max *int64 // Min and max values. Cycle bool // Whether the sequence cycles. Attrs []schema.Attr // Additional attributes (e.g., comments), Owner struct { T *schema.Table C *schema.Column } }
Sequence defines (the supported) sequence options. https://postgresql.org/docs/current/sql-createsequence.html
type SerialType ¶
type SerialType struct { schema.Type T string Precision int // SequenceName holds the inspected sequence name attached to the column. // It defaults to <Table>_<Column>_seq when the column is created, but may // be different in case the table or the column was renamed. SequenceName string }
A SerialType defines a serial type. https://postgresql.org/docs/current/datatype-numeric.html#DATATYPE-SERIAL
func (*SerialType) IntegerType ¶
func (s *SerialType) IntegerType() *schema.IntegerType
IntegerType returns the underlying integer type this serial type represents.
func (*SerialType) SetType ¶
func (s *SerialType) SetType(t *schema.IntegerType)
SetType sets the serial type from the given integer type.
type TextSearchType ¶
A TextSearchType defines full text search types. https://www.postgresql.org/docs/current/datatype-textsearch.html
type UUIDType ¶
UUIDType is alias to schema.UUIDType. Defined here for backward compatibility reasons.
type UserDefinedType ¶
UserDefinedType defines a user-defined type attribute.
type XMLType ¶
A XMLType defines an XML type.
Source Files ¶
convert.go crdb_oss.go diff_oss.go driver_oss.go inspect_oss.go migrate_oss.go sqlspec_oss.go
Directories ¶
Path | Synopsis |
---|---|
sql/postgres/internal | |
sql/postgres/postgrescheck |
- Version
- v0.32.0 (latest)
- Published
- Mar 10, 2025
- Platform
- linux/amd64
- Imports
- 27 packages
- Last checked
- 1 month ago –
Tools for package owners.