 (s/defschema LimitSchema s/Int)
 
 (s/defschema FullTableSelectOptsSchema
-  {(s/optional-key :columns) ColumnsSchema
+  {(s/optional-key :columns) SelectColumnsSchema
    (s/optional-key :limit) LimitSchema})
 
 (s/defschema SelectOptsSchema

   (s/optional-key :if-exists) s/Bool
   (s/optional-key :if-not-exists) s/Bool
   (s/optional-key :using) UpsertUsingSchema
   (s/optional-key :set-columns) ColumnsSchema})

(s/defn update-statement
  "returns a Hayt update statement"

(s/defschema WhereSchema
  [WhereClauseSchema])

(s/defschema UpdateColumnSchema
  s/Keyword)

(s/defschema UpdateColumnsSchema
  [(s/one UpdateColumnSchema :first-col) UpdateColumnSchema])

(s/defschema SelectColumnSchema
  (s/conditional
   keyword? s/Keyword
   :else CQLRaw))

(s/defschema SelectColumnsSchema
  [(s/one SelectColumnSchema :first-col) SelectColumnSchema])

(s/defschema OrderByClauseSchema
  [(s/one s/Keyword :order-by-col)
