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 ++ cook-ordered-column
|= a=* |= a=*
?@ a ?@ a
(ordered-column:ast %ordered-column a %asc) (ordered-column:ast %ordered-column a %.y)
?: ?=([@ @] [a]) ?: ?=([@ @] [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 ++ cook-primary-key
|= a=* |= a=*

View File

@ -5,12 +5,11 @@
:: ::
+$ foreign-key-action ?(%no-action %cascade) +$ foreign-key-action ?(%no-action %cascade)
+$ index-action ?(%rebuild %disable %resume) +$ index-action ?(%rebuild %disable %resume)
+$ order ?(%asc %desc)
+$ ordered-column +$ ordered-column
$: $:
%ordered-column %ordered-column
column-name=@t column-name=@t
column-order=order is-ascending=?
== ==
+$ all-or-any ?(%all %any) +$ all-or-any ?(%all %any)
+$ bool-conjunction ?(%and %or) +$ 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 :: tests 1, 2, 3, 5, and extra whitespace characters, create index... db.ns.table, create unique index... db..table
++ test-create-index-1 ++ 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]]] =/ 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' 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' is-ascending=%.y] [%ordered-column column-name='col2' is-ascending=%.n] [%ordered-column column-name='col3' is-ascending=%.y]]]
%+ expect-eq %+ expect-eq
!> ~[expected1 expected2] !> ~[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 ) ") !> (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 :: leading whitespace characters, end delimiter, create clustered index... ns.table
++ test-create-index-2 ++ 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 %+ expect-eq
!> ~[expected] !> ~[expected]
!> (parse:parse(current-database 'db1') " \0d CREATE clusTered INDEX my-index ON ns.table (col1, col2 desc, col3);") !> (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)" :: create nonclustered index... table (col1 desc, col2 asc, col3)"
++ test-create-index-3 ++ 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 %+ expect-eq
!> ~[expected] !> ~[expected]
!> (parse:parse(current-database 'db1') "CREATE nonclusTered INDEX my-index ON table (col1 desc, col2 asc, col3)") !> (parse:parse(current-database 'db1') "CREATE nonclusTered INDEX my-index ON table (col1 desc, col2 asc, col3)")
:: ::
:: create unique clustered index... table (col1 desc) :: create unique clustered index... table (col1 desc)
++ test-create-index-4 ++ 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 %+ expect-eq
!> ~[expected] !> ~[expected]
!> (parse:parse(current-database 'db1') "CREATE uniQue clusTered INDEX my-index ON table (col1 desc)") !> (parse:parse(current-database 'db1') "CREATE uniQue clusTered INDEX my-index ON table (col1 desc)")
:: ::
:: create unique nonclustered index... table (col1) :: create unique nonclustered index... table (col1)
++ test-create-index-5 ++ 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 %+ expect-eq
!> ~[expected] !> ~[expected]
!> (parse:parse(current-database 'db1') "CREATE uniQue nonclusTered INDEX my-index ON table (col1)") !> (parse:parse(current-database 'db1') "CREATE uniQue nonclusTered INDEX my-index ON table (col1)")