package Ġapp . cash . sql de light . dialect s . sqlite _ 3 _ 3 5 . grammar . mixins Ċ Ċ import Ġapp . cash . sql de light . dialect s . sqlite _ 3 _ 3 5 . grammar . psi . Sqlite Alter Table Drop Column Ċ import Ġcom . ale c strong . sql . psi . core . Sql Annotation Holder Ċ import Ġcom . ale c strong . sql . psi . core . psi . Alter Table App lier Ċ import Ġcom . ale c strong . sql . psi . core . psi . Lazy Query Ċ import Ġcom . ale c strong . sql . psi . core . psi . Sql ColumnName Ċ import Ġcom . ale c strong . sql . psi . core . psi . Sql Composite Element Ċ import Ġcom . ale c strong . sql . psi . core . psi . Sql Composite Element Impl Ċ import Ġcom . ale c strong . sql . psi . core . psi . Sql Create Index Stmt Ċ import Ġcom . ale c strong . sql . psi . core . psi . Sql Types Ċ import Ġcom . ale c strong . sql . psi . core . psi . alter Stmt Ċ import Ġcom . ale c strong . sql . psi . core . psi . mixins . Column Def Mixin Ċ import Ġcom . intellij . lang . AST Node Ċ Ċ internal Ġabstract Ġclass ĠAlter Table Drop Column Mixin ( ĊĠ Ġnode : ĠAST Node Ċ ) Ġ: ĠSql Composite Element Impl ( node ), ĊĠ ĠSql ite Alter Table Drop Column , ĊĠ ĠAlter Table App lier Ġ{ ĊĠ Ġprivate Ġval ĠcolumnName ĊĠĠĠ Ġget () Ġ= Ġchildren . filter Is Instance < Sql ColumnName >(). single () ĊĊĠ Ġoverride Ġfun Ġapply To ( lazy Query : ĠLazy Query ): ĠLazy Query Ġ{ ĊĠĠĠ Ġreturn ĠLazy Query ( ĊĠĠĠĠĠ ĠtableName Ġ= Ġlazy Query . tableName , ĊĠĠĠĠĠ Ġquery Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġlazy Query . query . copy ( ĊĠĠĠĠĠĠĠĠĠ Ġcolumns Ġ= Ġlazy Query . query . columns . filter Not Ġ{ Ġ( it . element Ġas ĠSql ColumnName ). text Matches ( columnName ) Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġannotate ( annotation Holder : ĠSql Annotation Holder ) Ġ{ ĊĠĠĠ Ġsuper . annotate ( annotation Holder ) ĊĊĠĠĠ Ġval Ġcolumns Ġ= Ġtables Available ( this ) ĊĠĠĠĠĠ Ġ. filter Ġ{ Ġit . tableName . text Matches ( alter Stmt . tableName ) Ġ} ĊĠĠĠĠĠ Ġ. flatMap Ġ{ Ġit . query . columns Ġ} ĊĊĠĠĠ Ġval Ġcolumns To Drop Ġ= Ġcolumns . filter Ġ{ Ġ( it . element Ġas ? ĠSql ColumnName )?. text Matches ( columnName ) Ġ== Ġtrue Ġ} ĊĊĠĠĠ Ġif Ġ( columns . size Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠ Ġannotation Holder . create Error Annotation ( ĊĠĠĠĠĠĠĠ Ġelement Ġ= ĠcolumnName , ĊĠĠĠĠĠĠĠ Ġs Ġ= Ġ" Cannot Ġdrop Ġcolumn Ġ\" ${ columnName . text }\ ": Ġno Ġother Ġcolumns Ġexist " ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġval Ġconstraints Ġ= Ġcolumns To Drop ĊĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ Ġit . element . parent Ġas ? ĠColumn Def Mixin Ġ} ĊĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġit . column Constraint List Ġ} ĊĊĠĠĠĠĠ Ġif Ġ( constraints . any Ġ{ Ġit . has PrimaryKey () Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġannotation Holder . create Error Annotation ( ĊĠĠĠĠĠĠĠĠĠ Ġelement Ġ= ĠcolumnName , ĊĠĠĠĠĠĠĠĠĠ Ġs Ġ= Ġ" Cannot Ġdrop ĠPRIMARY ĠKEY Ġcolumn Ġ\" ${ columnName . text }\ "" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( constraints . any Ġ{ Ġit . is Unique () Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġannotation Holder . create Error Annotation ( ĊĠĠĠĠĠĠĠĠĠ Ġelement Ġ= ĠcolumnName , ĊĠĠĠĠĠĠĠĠĠ Ġs Ġ= Ġ" Cannot Ġdrop ĠUNIQUE Ġcolumn Ġ\" ${ columnName . text }\ "" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġcontaining File ĊĠĠĠĠĠĠĠĠĠ Ġ. schema ( Sql Create Index Stmt :: class , Ġthis ) ĊĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġindex Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex . tableName ?. text Matches ( alter Stmt . tableName ) Ġ== Ġtrue ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġindex Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex . indexed Column List . any Ġ{ Ġit . columnName ?. text Matches ( columnName ) Ġ== Ġtrue Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġindex For Column To Drop Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Holder . create Error Annotation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelement Ġ= ĠcolumnName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs Ġ= Ġ" Cannot Ġdrop Ġindexed Ġcolumn Ġ\" ${ columnName . text }\" Ġ( \" ${ index For Column To Drop . index Name . text }\ ")" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġprivate Ġfun ĠSql Composite Element . has PrimaryKey () Ġ= Ġnode . find Child ByType ( Sql Types . PRIMARY ) Ġ!= Ġnull ĊĠĠĠ Ġprivate Ġfun ĠSql Composite Element . is Unique () Ġ= Ġnode . find Child ByType ( Sql Types . UNIQUE ) Ġ!= Ġnull ĊĠ Ġ} Ċ } Ċ