change column order format

This commit is contained in:
jackfoxy 2022-08-29 13:12:40 -07:00
parent 404263443e
commit 3f7e81f5a9
3 changed files with 12 additions and 11 deletions

View File

@ -124,9 +124,11 @@
++ cook-ordered-column
|= a=*
?@ a
(ordered-column:ast %ordered-column a %asc)
(ordered-column:ast %ordered-column a %.y)
?: ?=([@ @] [a])
(ordered-column:ast %ordered-column -.a +.a)
?: =(+.a %asc)
(ordered-column:ast %ordered-column -.a %.y)
(ordered-column:ast %ordered-column -.a %.n)
!!
++ cook-primary-key
|= a=*

View File

@ -5,12 +5,11 @@
::
+$ foreign-key-action ?(%no-action %cascade)
+$ index-action ?(%rebuild %disable %resume)
+$ order ?(%asc %desc)
+$ ordered-column
$:
%ordered-column
column-name=@t
column-order=order
is-ascending=?
==
+$ all-or-any ?(%all %any)
+$ bool-conjunction ?(%and %or)

View File

@ -48,36 +48,36 @@
::
:: tests 1, 2, 3, 5, and extra whitespace characters, create index... db.ns.table, create unique index... db..table
++ test-create-index-1
=/ expected1 [%create-index name='my-index' object-name=[%qualified-object ship=~ database='db' namespace='ns' name='table'] is-unique=%.n is-clustered=%.n columns=~[[%ordered-column column-name='col1' column-order=%asc] [%ordered-column column-name='col2' column-order=%desc] [%ordered-column column-name='col3' column-order=%asc]]]
=/ expected2 [%create-index name='my-index' object-name=[%qualified-object ship=~ database='db' namespace='dbo' name='table'] is-unique=%.y is-clustered=%.n columns=~[[%ordered-column column-name='col1' column-order=%asc] [%ordered-column column-name='col2' column-order=%desc] [%ordered-column column-name='col3' column-order=%asc]]]
=/ expected1 [%create-index name='my-index' object-name=[%qualified-object ship=~ database='db' namespace='ns' name='table'] is-unique=%.n is-clustered=%.n columns=~[[%ordered-column column-name='col1' is-ascending=%.y] [%ordered-column column-name='col2' is-ascending=%.n] [%ordered-column column-name='col3' is-ascending=%.y]]]
=/ expected2 [%create-index name='my-index' object-name=[%qualified-object ship=~ database='db' namespace='dbo' name='table'] is-unique=%.y is-clustered=%.n columns=~[[%ordered-column column-name='col1' is-ascending=%.y] [%ordered-column column-name='col2' is-ascending=%.n] [%ordered-column column-name='col3' is-ascending=%.y]]]
%+ expect-eq
!> ~[expected1 expected2]
!> (parse:parse(current-database 'db1') "CREATe \0d INdEX\09my-index On db.ns.table ( col1 , col2\0a desc , col3) \0a;\0a CREATE unIque INDEX my-index ON db..table (col1 , col2 desc, col3 ) ")
::
:: leading whitespace characters, end delimiter, create clustered index... ns.table
++ test-create-index-2
=/ expected [%create-index name='my-index' object-name=[%qualified-object ship=~ database='db1' namespace='ns' name='table'] is-unique=%.n is-clustered=%.y columns=~[[%ordered-column column-name='col1' column-order=%asc] [%ordered-column column-name='col2' column-order=%desc] [%ordered-column column-name='col3' column-order=%asc]]]
=/ expected [%create-index name='my-index' object-name=[%qualified-object ship=~ database='db1' namespace='ns' name='table'] is-unique=%.n is-clustered=%.y columns=~[[%ordered-column column-name='col1' is-ascending=%.y] [%ordered-column column-name='col2' is-ascending=%.n] [%ordered-column column-name='col3' is-ascending=%.y]]]
%+ expect-eq
!> ~[expected]
!> (parse:parse(current-database 'db1') " \0d CREATE clusTered INDEX my-index ON ns.table (col1, col2 desc, col3);")
::
:: create nonclustered index... table (col1 desc, col2 asc, col3)"
++ test-create-index-3
=/ expected [%create-index name='my-index' object-name=[%qualified-object ship=~ database='db1' namespace='dbo' name='table'] is-unique=%.n is-clustered=%.n columns=~[[%ordered-column column-name='col1' column-order=%desc] [%ordered-column column-name='col2' column-order=%asc] [%ordered-column column-name='col3' column-order=%asc]]]
=/ expected [%create-index name='my-index' object-name=[%qualified-object ship=~ database='db1' namespace='dbo' name='table'] is-unique=%.n is-clustered=%.n columns=~[[%ordered-column column-name='col1' is-ascending=%.n] [%ordered-column column-name='col2' is-ascending=%.y] [%ordered-column column-name='col3' is-ascending=%.y]]]
%+ expect-eq
!> ~[expected]
!> (parse:parse(current-database 'db1') "CREATE nonclusTered INDEX my-index ON table (col1 desc, col2 asc, col3)")
::
:: create unique clustered index... table (col1 desc)
++ test-create-index-4
=/ expected [%create-index name='my-index' object-name=[%qualified-object ship=~ database='db1' namespace='dbo' name='table'] is-unique=%.y is-clustered=%.y columns=~[[%ordered-column column-name='col1' column-order=%desc]]]
=/ expected [%create-index name='my-index' object-name=[%qualified-object ship=~ database='db1' namespace='dbo' name='table'] is-unique=%.y is-clustered=%.y columns=~[[%ordered-column column-name='col1' is-ascending=%.n]]]
%+ expect-eq
!> ~[expected]
!> (parse:parse(current-database 'db1') "CREATE uniQue clusTered INDEX my-index ON table (col1 desc)")
::
:: create unique nonclustered index... table (col1)
++ test-create-index-5
=/ expected [%create-index name='my-index' object-name=[%qualified-object ship=~ database='db1' namespace='dbo' name='table'] is-unique=%.y is-clustered=%.n columns=~[[%ordered-column column-name='col1' column-order=%asc]]]
=/ expected [%create-index name='my-index' object-name=[%qualified-object ship=~ database='db1' namespace='dbo' name='table'] is-unique=%.y is-clustered=%.n columns=~[[%ordered-column column-name='col1' is-ascending=%.y]]]
%+ expect-eq
!> ~[expected]
!> (parse:parse(current-database 'db1') "CREATE uniQue nonclusTered INDEX my-index ON table (col1)")