diff --git a/docs/ref-ch03-create.md b/docs/ref-ch03-create.md index 6adf991..68213d7 100755 --- a/docs/ref-ch03-create.md +++ b/docs/ref-ch03-create.md @@ -1,8 +1,10 @@ # CREATE DATABASE Creates a new user-space database available to any agent running on the ship. There is no sand-boxing. + +TO DO: consider adding an owner-desk property and GRANT desk permissions. ``` -CREATE DATABASE +CREATE DATABASE ``` ## Example @@ -18,7 +20,7 @@ CREATE DATABASE ## Arguments -**``** +**``** User-defined name for the new database. Must follow the hoon term naming standard. ## Remarks @@ -43,9 +45,9 @@ Creates an index over selected column(s) on an existing table. ``` ::= - CREATE [ UNIQUE ] [ NONCLUSTERED | CLUSTERED ] INDEX - ON [ ] - ( [ ASC | DESC ] [ ,...n ] ) + CREATE [ UNIQUE ] [ NONCLUSTERED | CLUSTERED ] INDEX + ON [ ] + ( [ ASC | DESC ] [ ,...n ] ) ``` ## Examples @@ -72,14 +74,14 @@ CREATE INDEX ix_vendor-id3 ON purchasing..product-vendor (vendor-id); ## Arguments -**``** +**``** User-defined name for the new index. Must follow the hoon term naming standard. -**``** +**`
`** Name of existing table the index targets. -If not explicitly qualified defaults to the agent's current database and 'dbo' namespace. +If not explicitly qualified defaults to the Obelisk agent's current database and 'dbo' namespace. -**` [ ASC | DESC ] [ ,...n ] `** +**` [ ASC | DESC ] [ ,...n ] `** List of column names in the target table, representing the sort hierarchy, and optionally sort direction for each level, defaulting to `ASC`, ascending. ## Remarks @@ -108,7 +110,7 @@ When not otherwise specified namepace designations default to `dbo`. ``` ::= - CREATE NAMESPACE [.] + CREATE NAMESPACE [.] ``` ## Example @@ -121,7 +123,7 @@ When not otherwise specified namepace designations default to `dbo`. ## Arguments -**``** +**``** User-defined name for the new index. Must follow the hoon term naming standard. The namespace "sys" is reserved for system use. @@ -142,8 +144,8 @@ Procedures are urQL scripts that accept parameters. ``` ::= CREATE { PROC | PROCEDURE } - [] - [ { # } ] [ ,...n ] + [] + [ { # } ] [ ,...n ] AS { ; | *hoon } [ ;...n ] ``` @@ -154,18 +156,18 @@ Cannot be used to create database. # CREATE TABLE Tables are the only means of indexed persistent ``s. -Any update to `
` contents results in an agent state change. +Any update to `
` contents results the Obelisk agent changeing state. TO DO: any reason to specify foreign key name (see CREATE INDEX). ``` ::= CREATE TABLE - [ ] - ( { } + [ ]
+ ( { } [ ,... n ] ) - PRIMARY KEY [ NONCLUSTERED | CLUSTERED ] ( [ ,... n ] ) - [ { FOREIGN KEY ( [ ASC | DESC ] [ ,... n ] ) - REFERENCES [ . ] ( [ ,... n ] ) + PRIMARY KEY [ NONCLUSTERED | CLUSTERED ] ( [ ,... n ] ) + [ { FOREIGN KEY ( [ ASC | DESC ] [ ,... n ] ) + REFERENCES [ . ]
( [ ,... n ] ) [ ON DELETE { NO ACTION | CASCADE | SET DEFAULT } ] [ ON UPDATE { NO ACTION | CASCADE | SET DEFAULT } ] } [ ,... n ] ]` @@ -194,22 +196,22 @@ REFERENCES special-offer (product-id, special-offer-id) ## Arguments -**``** +**`
`** User-defined name for the new table. Must follow the hoon term naming standard. -If not explicitly qualified defaults to the agent's current database and 'dbo' namespace. +If not explicitly qualified defaults to the Obelisk agent's current database and 'dbo' namespace. -**` `** +**` `** List of user-define column names and associated auras. Names must follow the hoon term naming standard. See [ref-ch02-types](ref-ch02-types.md) -**`[ NONCLUSTERED | CLUSTERED ] ( [ ,... n ]`** +**`[ NONCLUSTERED | CLUSTERED ] ( [ ,... n ]`** Columns in the required unique primary index. Defining the index as `CLUSTERED` is optional. -**` ( [ ASC | DESC ] [ ,... n ]`** +**` ( [ ASC | DESC ] [ ,... n ]`** User-defined name for ``. Must follow the hoon term naming standard. List of columns in the table for association with a foreign table along with sort ordering. Default is `ASC` ascending. -**` ( [ ,... n ]`** +**`
( [ ,... n ]`** Referenced foreign `
` and columns. Count and associated column auras must match the specified columns from the new `
`. **`ON DELETE { NO ACTION | CASCADE | SET DEFAULT }`** @@ -217,7 +219,7 @@ Specifies an action on the rows in the table if those rows have a referential re * NO ACTION (default) -The agent raises an error and the delete action on the row in the parent foreign table is rolled back. +The Obelisk agent raises an error and the delete action on the row in the parent foreign table is aborted. * CASCADE @@ -226,14 +228,14 @@ Corresponding rows are deleted from the referencing table when that row is delet * SET DEFAULT All the values that make up the foreign key are set to their bunt values when the corresponding row in the parent foreign table is deleted. -The agent raises an error if the parent table has no entry with bunt values. +The Obelisk agent raises an error if the parent table has no entry with bunt values. **`ON UPDATE { NO ACTION | CASCADE | SET DEFAULT }`** Specifies an action on the rows in the table if those rows have a referential relationship and the referenced row is deleted from the foreign table. * NO ACTION (default) -The Database Engine raises an error, and the update action on the row in the parent table is rolled back. +The Database Engine raises an error, and the update action on the row in the parent table is aborted. * CASCADE @@ -242,7 +244,7 @@ Corresponding rows are updated in the referencing table when that row is updated * SET DEFAULT All the values that make up the foreign key are set to their bunt values when the corresponding row in the parent table is updated. -The agent raises an error if the parent table has no entry with bunt values. +The Obelisk agent raises an error if the parent table has no entry with bunt values. ## Remarks The command results in a state change of the Obelisk agent. @@ -267,7 +269,7 @@ table column referenced by FOREIGN KEY does not exist aura mis-match in FOREIGN KEY # CREATE TRIGGER -A trigger automatically runs when a specified event occurs in the agent. It runs a previously defined ``. +A trigger automatically runs when a specified table or view event occurs in the Obelisk agent. It runs a previously defined ``. An `INSTEAD OF` trigger fires before the triggering event can occur and replaces it. Otherwise the procedure runs after the triggering event succedes and all state changed by both the triggering event and trigger `` is included in one and the same state change. @@ -276,8 +278,8 @@ The trigger event for a `` is simple execution. ``` ::= - CREATE TRIGGER [ ] - ON { | } + CREATE TRIGGER [ ] + ON {
| } { AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] } AS @@ -297,7 +299,7 @@ Potential caching of views is TBD. ``` ::= - CREATE VIEW [ ] AS + CREATE VIEW [ ] AS ``` ## API @@ -312,7 +314,7 @@ Potential caching of views is TBD. ## Arguments -**``** +**``** User-defined name for the new view. Must follow the hoon term naming standard. **``** @@ -326,8 +328,8 @@ The last step of the `` must establish unique column names, whether i ## Produced Metadata -INSERT `name`, ``, `` into `sys.sys.views` -INSERT `name`, ``, `` into `sys.sys.view-columns` +INSERT `name`, ``, `` into `.sys.views` +INSERT `name`, ``, `` into `.sys.view-columns` ## Exceptions diff --git a/docs/ref-ch04-data-manipulation.md b/docs/ref-ch04-data-manipulation.md index 81bdcea..7354b3f 100755 --- a/docs/ref-ch04-data-manipulation.md +++ b/docs/ref-ch04-data-manipulation.md @@ -24,16 +24,18 @@ Deletes rows from a ``. ## Arguments -** ** +**``** +Target of the `DELETE` operation. + +**``** +Any valid `` including predicates on CTEs. ## Remarks -The command potentially mutates `
` and if so results in a state change of the Obelisk agent. - -A stand-alone `DELETE` statement can only operate on a `
` and produces a `` of one command step with no CTEs. - When `` is a `
` the command potentially mutates `
` and if so results in a state change of the Obelisk agent. +A stand-alone `DELETE` statement can only operate on a `
` and produces a `` of one command step. + Data in the namespace *sys* cannot be deleted. When `` is a virtual table the command produces an output `` which may be consumed as a pass-thru by a subsequent `` step. @@ -83,16 +85,27 @@ Inserts rows into a ``. ## Arguments -** ** +**``** +Target of the `INSERT` operation. + +**`` [ ,...n ]** +When present the column list must account for all column identifiers (names or aliases) in the target once. +Establishes the order in which update values are applied and the output ``'s column order. + +**(`` [ ,...n ] ) [ ,...n ]** +Row(s) of literal values to insert into target. +Auras must match target columnwise. + +**``** +Transform creating source `` to insert into target. +Source auras must match target columnwise. ## Remarks -The command potentially mutates `
` and if so results in a state change of the Obelisk agent. +When `` is a `
` the command potentially mutates `
` and if so results in a state change of the Obelisk agent. A stand-alone `INSERT` statement can only operate on a `
` and produces a `` of one command step with no CTEs. -When `` is a `
` the command potentially mutates `
` and if so results in a state change of the Obelisk agent. - Data in the namespace *sys* cannot be inserted into. When `` is a virtual table the command produces an output `` which may be consumed as a pass-thru by a subsequent `` step. @@ -115,6 +128,7 @@ When target `` is not a `
` and the input is from a `` does not exist `GRANT` permission on `
` violated +unique key violation colum misalignment @@ -138,7 +152,8 @@ Removes all rows in a base table. ## Arguments -** ** +**`
`** +Target table. ## Remarks @@ -160,8 +175,8 @@ none Changes content of selected columns in existing rows of a ``. ``` - ::= - UPDATE [ ]
+ ::= + UPDATE [ ] SET { = } [ ,...n ] [ WHERE ] ``` @@ -180,16 +195,22 @@ Changes content of selected columns in existing rows of a ``. ## Arguments -** ** +**``** +Target of the `UPDATE` operation + +**`` = ``** +`` is a column name or alias of a target column. +`` valid expression within the statement context. + +**``** +Any valid `` including predicates on CTEs. ## Remarks -The command potentially mutates `
` and if so results in a state change of the Obelisk agent. +When `` is a `
` the command potentially mutates `
` and if so results in a state change of the Obelisk agent. A stand-alone `UPDATE` statement can only operate on a `
` and produces a `` of one command step with no CTEs. -When `` is a `
` the command potentially mutates `
` and if so results in a state change of the Obelisk agent. - Data in the namespace *sys* cannot be updated. When `` is a virtual table the command produces an output `` which may be consumed as a pass-thru by a subsequent `` step. @@ -206,3 +227,5 @@ Escape single quotes with double backslash thusly `'this is a cor\\'d'`. ## Exceptions `
` does not exist `GRANT` permission on `
` violated +unique key violation +aura mismatch on `SET` diff --git a/docs/ref-ch05-query.md b/docs/ref-ch05-query.md index 61a75a4..157ad8b 100755 --- a/docs/ref-ch05-query.md +++ b/docs/ref-ch05-query.md @@ -9,7 +9,7 @@ [ ...n ] | CROSS JOIN [ [AS] ] ] - [ { SCALAR [ AS ] } [ ...n ] ] + [ { SCALAR [ AS ] } [ ...n ] ] [ WHERE ] [ GROUP BY { | | } [ ,...n ] @@ -96,9 +96,9 @@ See CH 8 Functions for full documentation on Scalars. ::= { | - | + | | - | ( { | } ) + | ( { | } ) } ``` `` is defined in a CTE and must return only one column. The first returned value is accepted and subsequent values ignored. @@ -117,7 +117,7 @@ See CH 8 Functions for full documentation on Scalars. ``` ::= -[ [ ] | ]. +[ [ ] | ]. ``` ## API diff --git a/docs/ref-ch09-permissions.md b/docs/ref-ch09-permissions.md index fef0c40..ac45744 100755 --- a/docs/ref-ch09-permissions.md +++ b/docs/ref-ch09-permissions.md @@ -1,35 +1,146 @@ # GRANT +Grants permission to read from and/or write to selected `` on host ship to selected foreign ships. ``` GRANT { ADMINREAD | READONLY | READWRITE } TO { PARENT | SIBLINGS | MOONS | <@p> [ ,...n ] } - ON { DATABASE - | NAMESPACE [] - | []{ | } + ON { DATABASE + | NAMESPACE [.] + | [] + } ``` ## Example -`GRANT READONLY TO ~sampel-palnet ON my-namespace` +`GRANT READONLY TO ~sampel-palnet ON NAMESPACE my-namespace` + +## API +``` +$: + %grant + permission=grant-permission + to=grantee + grant-target=grant-object +== +``` ## Arguments -** ** +**ADMINREAD** +Grants read permission on `.sys` tables and views. +`ON` clause must be ``. -Discussion: -Grantees `PARENT` and `SIBLINGS` are only valid for moon servers. `MOONS` is only valid for moon parents. -`ADMINREAD` grants read-only access to the servers administration tables and views +**READONLY** +Grants read permission on selected object. + +**READWRITE** +Grants read and write permission on selected object. + +**PARENT** +Grantee is parent of ship on which Obelisk agent is running. + +**SIBLINGS** +Grantees are all other moons of the parent of ship on which Obelisk agent is running. + +**MOONS** +Grantees are all moons of the ship on which Obelisk agent is running. + +**<@p> [ ,...n ]** +List of ships to grant permission to. + +**``** +Grant permissin on named database to all `
s` and ``s. + +**`[.]`** +Grant permissin on named namespace to all `
s` and ``s. + +**`[]`** +Grant permission is on named object, whether is is a `
` or ``. + +## Remarks +The command results in a state change of the Obelisk agent. + +Write permission includes `DELETE`, `INSERT`, and `UPDATE`. + +When a granted database object is dropped all applicable `GRANT`s are also dropped. + +`` remain valid whether a `` is shadowing a `
` or not. +In the case where a shadowing `` is dropped the grant then applies to the `
`. +In the case where a new `` shadows a granted `
` the grant newly applies to the ``. + + +## Produced Metadata +INSERT grantee, grant, target, `` INTO `.sys.grants` + +## Exceptions +`` does not exist. +`` does not exist. +`` does not exist. +`GRANT` target type does not exist. (e.g. host is a `MOON` and `GRANT` is `ON MOONS`) # REVOKE +Revokes permission to read from and/or write to selected database objects on host ship to selected foreign ships. ``` REVOKE { ADMINREAD | READONLY | READWRITE | ALL } FROM { PARENT | SIBLINGS | MOONS | ALL | <@p> [ ,...n ] } - ON { DATABASE - | NAMESPACE [] - | []{ | } + ON { DATABASE + | NAMESPACE [.] + | [] + } +``` + + +## API +``` ++$ revoke + $: + %revoke + permission=revoke-permission + from=revoke-from + revoke-target=revoke-object + == ``` ## Arguments -** ** +**ADMINREAD** +Revokes read permission on `.sys` tables and views. +`ON` clause must be ``. + +**READONLY** +Revokes read permission on selected object. + +**READWRITE** +Revokes read and write (DELETE, INSERT, UPDATE) permission on selected object. + +**PARENT** +Grantee is parent of ship on which Obelisk agent is running. + +**SIBLINGS** +Grantees are all other moons of the parent of ship on which Obelisk agent is running. + +**MOONS** +Grantees are all moons of the ship on which Obelisk agent is running. + +**<@p> [ ,...n ]** +List of ships to grant permission to. + +**``** +Grant permissin on named database. + +**`[.]`** +Revoke permissin on named namespace. + +**`[]`** +Revoke permission is on named object, whether is is a `
` or ``. + +## Remarks +The command results in a state change of the Obelisk agent. + +## Produced Metadata +DROP grantee, grant, target FROM `.sys.grants` + +## Exceptions + +`GRANT` does not exist. diff --git a/docs/ref-ch10-alter.md b/docs/ref-ch10-alter.md index d737642..9746ed8 100755 --- a/docs/ref-ch10-alter.md +++ b/docs/ref-ch10-alter.md @@ -1,40 +1,76 @@ # ALTER INDEX +Alters the structure of an existing `` ``` -ALTER INDEX [ ]{ } -ON { | } -[ ( [ ASC | DESC ] [ ,...n ] ) ] -{ REBUILD | DISABLE | RESUME} +ALTER [ UNIQUE ] [ NONCLUSTERED | CLUSTERED ] INDEX [ ] +ON {
| } +[ ( [ ASC | DESC ] [ ,...n ] ) ] +{ DISABLE | RESUME} +``` + + +## API +``` ++$ alter-index + $: + %alter-index + name=qualified-object + object=qualified-object + columns=(list ordered-column) + action=index-action + == ``` ## Arguments -** ** - -Discussion: -`RESUME` will rebuild the index if the underlying object is dirty. +**`[ ]`** +Target index. ## Remarks +The command results in a state change of the Obelisk agent. + +Cannot alter primary key and foreign key indices. + +`RESUME` will rebuild the index if the underlying object is dirty. + +TO DO: investigate hoon ordered maps to determine what exactly "clustered" means in hoon. It may be that multiple clustering indices are possibley, freaking out most DBAs. ## Produced Metadata ## Exceptions +column does not exist +UNIQUE specified and existing values are not unique for the column(s) specified # ALTER NAMESPACE ``` -ALTER NAMESPACE [ . ] - TRANSFER { TABLE | VIEW } [ ]{ | } +ALTER NAMESPACE [ . ] + TRANSFER { TABLE | VIEW } [ ]{
| } +``` + + +## API +``` ++$ alter-namespace + $: + %alter-namespace + database-name=@tas + source-namespace=@tas + object-type=object-type + target-namespace=@tas + target-name=@tas + == ``` ## Arguments ** ** -Discussion: -The namespace *sys* cannot be altered, nor can objects be transferred in or out of it. ## Remarks +The command results in a state change of the Obelisk agent. + +The namespace *sys* cannot be altered, nor can objects be transferred in or out of it. ## Produced Metadata @@ -42,30 +78,29 @@ The namespace *sys* cannot be altered, nor can objects be transferred in or out # ALTER PROCEDURE +TBD + ``` ALTER { PROC | PROCEDURE } - [] - [ { # } ] [ ,...n ] + [] + [ { # } ] [ ,...n ] AS { ; | *hoon } [ ;...n ] ``` -Discussion: -TBD - # ALTER TABLE ``` -ALTER TABLE [ ]{ } - { ALTER COLUMN ( { } [ ,... n ] ) - | ADD COLUMN ( { } [ ,... n ] ) - | DROP COLUMN ( { } [ ,... n ] ) - | ADD FOREIGN KEY ( [ ,... n ]) - REFERENCES [.] ( [ ,... n ]) +ALTER TABLE [ ]{
} + { ALTER COLUMN ( { } [ ,... n ] ) + | ADD COLUMN ( { } [ ,... n ] ) + | DROP COLUMN ( { } [ ,... n ] ) + | ADD FOREIGN KEY ( [ ,... n ]) + REFERENCES [.]
( [ ,... n ]) [ ON DELETE { NO ACTION | CASCADE } ] [ ON UPDATE { NO ACTION | CASCADE } ] [ ,... n ] - | DROP FOREIGN KEY ( [ ,... n ] } ) + | DROP FOREIGN KEY ( [ ,... n ] } ) ``` Example: @@ -74,11 +109,27 @@ ALTER TABLE my-table DROP FOREIGN KEY fk-1, fk-2 ``` + +## API +``` ++$ alter-table + $: + %alter-table + table=qualified-object + alter-columns=(list column) + add-columns=(list column) + drop-columns=(list @tas) + add-foreign-keys=(list foreign-key) + drop-foreign-keys=(list @tas) + == +``` + ## Arguments ** ** ## Remarks +The command results in a state change of the Obelisk agent. ## Produced Metadata @@ -86,29 +137,39 @@ DROP FOREIGN KEY fk-1, fk-2 # ALTER TRIGGER -``` -ALTER TRIGGER { [ ]{ } | ALL ] - ON { SERVER | | | } - [ ENABLE | DISABLE ] -``` - -Discussion: TBD +``` +ALTER TRIGGER { [ ]{ } | ALL ] + ON { SERVER | |
| } + [ ENABLE | DISABLE ] +``` # ALTER VIEW ``` -ALTER VIEW [ ]{ } -( { [.] } [ ,...n ] ) +ALTER VIEW [ ]{ } +( { [.] } [ ,...n ] ) AS ``` + +## API +``` ++$ alter-view + $: + %alter-view + view=qualified-object + transform + == +``` + ## Arguments ** ** ## Remarks +The command results in a state change of the Obelisk agent. ## Produced Metadata diff --git a/docs/ref-ch11-drop.md b/docs/ref-ch11-drop.md index 956238d..364c803 100755 --- a/docs/ref-ch11-drop.md +++ b/docs/ref-ch11-drop.md @@ -2,8 +2,29 @@ `DROP DATABASE [ FORCE ] ` -Discussion: -Only succeeds when no *populated* tables exist in it unless `FORCE` is specified. + +## API +``` ++$ drop-database + $: + %drop-database + name=@tas + force=? + == +``` + +## Arguments + +** ** + +## Remarks +The command results in a state change of the Obelisk agent. + +Only succeeds when no *populated* tables exist in the database unless `FORCE` is specified. + +## Produced Metadata + +## Exceptions # DROP INDEX @@ -13,30 +34,102 @@ DROP INDEX ON [ ] { | } ``` -Discussion: -Cannot drop indices whose names begin with "pk-", as these are table primary keys. + +## API +``` ++$ drop-index + $: + %drop-index + name=@tas + object=qualified-object + == +``` + +## Arguments + +** ** + +## Remarks +The command results in a state change of the Obelisk agent. + +Cannot drop indices whose names begin with "pk-" as these are table primary keys. + +drop of fk- same as alter-table +TO DO: update create-index to indicate name must be unique + work out at what level? + how to deal with alter namespace considerations. + +## Produced Metadata + +## Exceptions # DROP NAMESPACE `DROP NAMESPACE [ FORCE ] [ . ]` -Discussion: + +## API +``` ++$ drop-namespace + $: + %drop-namespace + database-name=@tas + name=@tas + force=? + == +``` + +## Arguments + +** ** + +## Remarks +The command results in a state change of the Obelisk agent. + Only succeeds when no tables or views are in the namespace, unless `FORCE` is specified, possibly resulting in cascading object drops described in `DROP TABLE`. Cannot drop namespaces *dbo* and *sys*. +## Produced Metadata + +## Exceptions + # DROP TABLE `DROP TABLE [ FORCE ] [ ]{ }` -Discussion: + +## API +``` ++$ drop-table + $: + %drop-table + table=qualified-object + force=? + == +``` + + +## Arguments + +** ** + +## Remarks +The command results in a state change of the Obelisk agent. + Cannot drop if used in a view or foreign key, unless `FORCE` is specified, resulting in cascading object drops. +## Produced Metadata + +## Exceptions + # DROP TRIGGER +TBD + ``` DROP TRIGGER [ ]{ } ON { | } @@ -45,10 +138,12 @@ DROP TRIGGER [ ]{ } # DROP TYPE -`DROP TYPE ` TBD -Discussion: +`DROP TYPE ` + + +## Remarks Cannot drop if type-name is in use. @@ -56,4 +151,27 @@ Cannot drop if type-name is in use. `DROP VIEW [ FORCE ] [ ]` -Discussion: Cannot drop if used in another view, unless `FORCE` is specified, resulting in cascading object drops. + +## API +``` ++$ drop-view + $: + %drop-view + view=qualified-object + force=? + == +``` + +## Arguments + +** ** + +## Remarks +The command results in a state change of the Obelisk agent. + +Cannot drop if used in another view, unless `FORCE` is specified, resulting in cascading object drops. + +## Produced Metadata + +## Exceptions + diff --git a/urql/sur/ast.hoon b/urql/sur/ast.hoon index be83aa1..ec90193 100755 --- a/urql/sur/ast.hoon +++ b/urql/sur/ast.hoon @@ -41,15 +41,15 @@ $: %qualified-object ship=(unit @p) - database=@t - namespace=@t + database=@tas + namespace=@tas name=@tas == +$ qualified-column $: %qualified-column qualifier=qualified-object - column=@t + column=@tas alias=(unit @t) == +$ foreign-key @@ -371,7 +371,8 @@ == :: :: $drop-namespace: database-name=@tas name=@tas force=? -+$ drop-namespace $:([%drop-namespace database-name=@tas name=@tas force=?]) ++$ drop-namespace + $:([%drop-namespace database-name=@tas name=@tas force=?]) :: :: $drop-table: table=qualified-object force=? +$ drop-table @@ -418,9 +419,9 @@ $: %alter-namespace database-name=@tas - source-namespace=@t + source-namespace=@tas object-type=object-type - target-namespace=@t + target-namespace=@tas target-name=@tas == :: @@ -431,9 +432,9 @@ table=qualified-object alter-columns=(list column) add-columns=(list column) - drop-columns=(list @t) + drop-columns=(list @tas) add-foreign-keys=(list foreign-key) - drop-foreign-keys=(list @t) + drop-foreign-keys=(list @tas) == :: :: $alter-trigger: TBD