A View is defined by one query: the SELECT statement that shapes the rows the view exposes. Write it on the Query step of the View popup, validate it, then save. The step follows General in the wizard; the whole view flow is on Views.
Write the query
Open the view and go to View > Query. When you create a view, save General first: the query belongs to the view, and History appears only for a saved view.
Write the SELECT that returns the columns the view should expose. The columns it returns appear on the View columns step, where you set their types, keys and permissions.
Where a value should change between runs, write a placeholder such as {region:String} instead of a fixed value. Each placeholder becomes a parameter of the view; see Work with parameters below.
To draft or change the query with AI, click AI in the editor header (tooltip "Generate with AI"). The flow is on Generate and fix SQL with AI.
Validate the query
Click Validate in the editor header, or press Ctrl+Enter. The tooltip reads "Validate query (Ctrl+Enter)".
Validate runs the query with the parameter values you set and opens a result window with the rows it returns, so you can check the result before you save. The check does not save the query; click Apply to keep it.
While the check runs, the editor is read-only and the button reads Stop (tooltip "Stop validation"). Click Stop to cancel; DataMind confirms with "View validation cancellation requested", and the running query stops.
A successful check turns the badge in the header to Validated. Any edit turns it back to Not validated; type the saved text back exactly and it returns to Validated. The badge is hidden while the editor has no query.
A failed check opens Query Validation Error. Read Error Details: and fix the query, or click Fix with AI and review the suggestion in Query Difference Checker; the fix flow is on Generate and fix SQL with AI. If the check cannot run at all, the message reads "An error occurred while validating the query".
Work with parameters
A parameter is a placeholder written in the query as {name:Type}. The parameters panel below the editor depends on the view type:
View type
Parameters panel
Standard
Hidden.
Refreshing
Hidden.
Parametrized
One row per parameter, with a Name, a Type and a Value.
Appending
The required parameter {sync_n_days:Int32} only.
In a Parametrized view, write a placeholder in the query and it appears in the panel as a row. Every row carries a Name, a Type and a Value; an incomplete row is refused with "Name is required", "Type is required" or "Value is required".
The parameter types are String, Int32, Float64, Bool, Date32 and Datetime64.
An Appending view starts with its required parameter, {sync_n_days:Int32}, whose value comes from Incremental Days on General. The query must use it: saving without it is refused with "Appending view query must include the required parameter: {sync_n_days:Int32}". You cannot add other parameters to an Appending view.
Note
Standard and Refreshing views take no parameters, so their query step shows no parameters panel.
Copy the query
Copy in the editor header opens two actions:
Copy as is copies the query exactly as written; placeholders stay untouched.
Copy parameters replaced replaces every placeholder with its current value and quotes text, date and time values so the copy stays valid SQL.
Restore an earlier revision
Click History in the editor header (tooltip "Query history"). It appears once the view has been saved.
Pick a revision in the window. Picking one replaces the query in the editor and marks it Not validated, so validate and save it again.
Save the query
Apply appears once the step has changes; it stores the query on the view. Success shows "View query updated successfully."; a failed save falls back to "Failed to update View".
The step saves only a filled, validated query: an empty one is refused with "* Query must be filled to proceed", and one that changed since its last check with "Query not validated". Next stays blocked for the same reasons.
If the new query no longer returns a column the view uses as its primary key, the update is refused with "View query update must include all existing primary key column(s)". Keep that column in the SELECT.
Running the check and saving the query need Add/Modify Warehouse Objects. Without it, the action is refused with a message that starts "Access denied. Required permission(s):". See Warehouse permissions and row-level security.
Questions, answered
Why is Validate disabled?
The check starts only when the editor has a query, every required parameter has a value, and no other check is running. Fill in what is missing, then try again.
Can I stop a check that is running?
Yes. Click Stop while the button shows it; DataMind confirms with "View validation cancellation requested", and the running query stops.
Can I see the rows a view query returns?
Yes. A successful check opens a result window with the rows it returns, so you can inspect the result before you save. Nothing is saved by the check itself.
Do I have to validate again after I edit the query?
Yes. Any change marks the query Not validated and blocks the save and Next until you check it again. Applying an AI suggestion or restoring a revision counts as a change too.
Why can't I save my query?
The step saves only a filled, validated query: an empty one is refused with "* Query must be filled to proceed", and an unchecked one with "Query not validated". Click Validate, wait for Validated, then click Apply.
Which parameters does an Appending view need?
One: {sync_n_days:Int32}, filled from Incremental Days on General. The query must use it, you cannot add more, and saving without it is refused.
Why don't I see History?
History appears for a saved view only. When you create a view, save General first; after that, the saved revisions of the query are listed in the window.
Why must the query keep the view's primary key columns?
When you save a changed query, the view checks that the column it uses as its primary key still comes back from the query. If it does not, the update is refused with "View query update must include all existing primary key column(s)". Keep that column in the SELECT and save again.