@@ -111,7 +111,10 @@ func (s *CreateEndpointStatement) statement() {}
111111
112112// CreateAssemblyStatement represents a CREATE ASSEMBLY statement.
113113type CreateAssemblyStatement struct {
114- Name * Identifier `json:"Name,omitempty"`
114+ Name * Identifier `json:"Name,omitempty"`
115+ Owner * Identifier `json:"Owner,omitempty"`
116+ Parameters []ScalarExpression `json:"Parameters,omitempty"`
117+ Options []AssemblyOptionBase `json:"Options,omitempty"`
115118}
116119
117120func (s * CreateAssemblyStatement ) node () {}
@@ -184,6 +187,24 @@ type CreationDispositionKeyOption struct {
184187func (c * CreationDispositionKeyOption ) node () {}
185188func (c * CreationDispositionKeyOption ) keyOption () {}
186189
190+ // KeySourceKeyOption represents a KEY_SOURCE key option.
191+ type KeySourceKeyOption struct {
192+ PassPhrase ScalarExpression `json:"PassPhrase,omitempty"`
193+ OptionKind string `json:"OptionKind,omitempty"`
194+ }
195+
196+ func (k * KeySourceKeyOption ) node () {}
197+ func (k * KeySourceKeyOption ) keyOption () {}
198+
199+ // IdentityValueKeyOption represents an IDENTITY_VALUE key option.
200+ type IdentityValueKeyOption struct {
201+ IdentityPhrase ScalarExpression `json:"IdentityPhrase,omitempty"`
202+ OptionKind string `json:"OptionKind,omitempty"`
203+ }
204+
205+ func (i * IdentityValueKeyOption ) node () {}
206+ func (i * IdentityValueKeyOption ) keyOption () {}
207+
187208// CryptoMechanism represents an encryption mechanism (CERTIFICATE, KEY, PASSWORD, etc.)
188209type CryptoMechanism struct {
189210 CryptoMechanismType string `json:"CryptoMechanismType,omitempty"` // "Certificate", "SymmetricKey", "AsymmetricKey", "Password"
@@ -195,9 +216,10 @@ func (c *CryptoMechanism) node() {}
195216
196217// CreateSymmetricKeyStatement represents a CREATE SYMMETRIC KEY statement.
197218type CreateSymmetricKeyStatement struct {
198- KeyOptions []KeyOption `json:"KeyOptions,omitempty"`
199- Provider * Identifier `json:"Provider,omitempty"`
200- Name * Identifier `json:"Name,omitempty"`
219+ KeyOptions []KeyOption `json:"KeyOptions,omitempty"`
220+ Owner * Identifier `json:"Owner,omitempty"`
221+ Provider * Identifier `json:"Provider,omitempty"`
222+ Name * Identifier `json:"Name,omitempty"`
201223 EncryptingMechanisms []* CryptoMechanism `json:"EncryptingMechanisms,omitempty"`
202224}
203225
@@ -289,8 +311,15 @@ func (s *CreatePartitionFunctionStatement) statement() {}
289311
290312// CreateIndexStatement represents a CREATE INDEX statement.
291313type CreateIndexStatement struct {
292- Name * Identifier `json:"Name,omitempty"`
293- OnName * SchemaObjectName `json:"OnName,omitempty"`
314+ Name * Identifier `json:"Name,omitempty"`
315+ OnName * SchemaObjectName `json:"OnName,omitempty"`
316+ Translated80SyntaxTo90 bool `json:"Translated80SyntaxTo90,omitempty"`
317+ Unique bool `json:"Unique,omitempty"`
318+ Clustered * bool `json:"Clustered,omitempty"` // nil = not specified, true = CLUSTERED, false = NONCLUSTERED
319+ Columns []* ColumnWithSortOrder `json:"Columns,omitempty"`
320+ IncludeColumns []* ColumnReferenceExpression `json:"IncludeColumns,omitempty"`
321+ IndexOptions []IndexOption `json:"IndexOptions,omitempty"`
322+ OnFileGroupOrPartitionScheme * FileGroupOrPartitionScheme `json:"OnFileGroupOrPartitionScheme,omitempty"`
294323}
295324
296325func (s * CreateIndexStatement ) node () {}
@@ -339,6 +368,7 @@ func (s *CreateTypeUdtStatement) statement() {}
339368type CreateTypeTableStatement struct {
340369 Name * SchemaObjectName `json:"Name,omitempty"`
341370 Definition * TableDefinition `json:"Definition,omitempty"`
371+ Options []TableOption `json:"Options,omitempty"`
342372}
343373
344374func (s * CreateTypeTableStatement ) node () {}
@@ -387,3 +417,18 @@ type CreateEventNotificationStatement struct {
387417
388418func (s * CreateEventNotificationStatement ) node () {}
389419func (s * CreateEventNotificationStatement ) statement () {}
420+
421+ // CreateDatabaseEncryptionKeyStatement represents a CREATE DATABASE ENCRYPTION KEY statement.
422+ type CreateDatabaseEncryptionKeyStatement struct {
423+ Algorithm string `json:"Algorithm,omitempty"`
424+ Encryptor * CryptoMechanism `json:"Encryptor,omitempty"`
425+ }
426+
427+ func (s * CreateDatabaseEncryptionKeyStatement ) node () {}
428+ func (s * CreateDatabaseEncryptionKeyStatement ) statement () {}
429+
430+ // DropDatabaseEncryptionKeyStatement represents a DROP DATABASE ENCRYPTION KEY statement.
431+ type DropDatabaseEncryptionKeyStatement struct {}
432+
433+ func (s * DropDatabaseEncryptionKeyStatement ) node () {}
434+ func (s * DropDatabaseEncryptionKeyStatement ) statement () {}
0 commit comments