DSL Syntax

Using the DSL syntax mentioned below,, the "rest/execute/v1/ actions/dsl/invoke" REST API can be executed to CUD views:

 

DROP DATA VIEW (IF EXISTS)? /path/name
 
———————————————————————————————————————————————————————————————
 
CREATE DATA VIEW (IF NOT EXISTS)? /path/name
DEFINE AS  sql
(SET PROPERTIES {"name":{value}})?
(SET ANNOTATION 'this is a view created using DSL api' | NULL)?
———————————————————————————————————————————————————————————————
 
 
ALTER DATA VIEW /path/name
(RELOCATE AS /path/newName)?
(DEFINE AS  sql)?
(SET PROPERTIES {"name":{value}})?
(SET ANNOTATION 'this view is altered using DSL api' | NULL)?
 
———————————————————————————————————————————————————————————————
 
SELECT * FROM model.ALL_TABLES where TABLE_NAME = 'name';
 
———————————————————————————————————————————————————————————————
 
 SELECT * FROM model.ALL_RESOURCE_PROPERTIES WHERE
        PROPERTY_NAME = 'propName' AND
        METADATA_ID =
            (SELECT TABLE_ID FROM model.ALL_TABLES
            WHERE TABLE_NAME = 'name' AND //name of view
            PARENT_PATH = '/path'); //parent path of the view

 

Note: Properties and annotation are optional when creating a data view.