================================================================================
Delete whole table
================================================================================

DELETE FROM my_table;

--------------------------------------------------------------------------------

(program
  (statement
    (delete
      (keyword_delete))
    (from
      (keyword_from)
      (object_reference
        name: (identifier)))))

================================================================================
Delete whole table with FQN
================================================================================

DELETE FROM my_database.my_schema.my_table;

--------------------------------------------------------------------------------

(program
  (statement
    (delete
      (keyword_delete))
    (from
      (keyword_from)
      (object_reference
        database: (identifier)
        schema: (identifier)
        name: (identifier)))))

================================================================================
Delete whole table and only the whole table
================================================================================

DELETE FROM ONLY my_table;

--------------------------------------------------------------------------------

(program
  (statement
    (delete
      (keyword_delete))
    (from
      (keyword_from)
      (keyword_only)
      (object_reference
        name: (identifier)))))

================================================================================
Delete table with limit
================================================================================

DELETE FROM my_table
LIMIT 4;

--------------------------------------------------------------------------------

(program
  (statement
    (delete
      (keyword_delete))
    (from
      (keyword_from)
      (object_reference
        name: (identifier))
      (limit
        (keyword_limit)
        (literal)))))

================================================================================
Delete table with order by
================================================================================

DELETE FROM my_table
ORDER BY id DESC
LIMIT 4;

--------------------------------------------------------------------------------

(program
  (statement
    (delete
      (keyword_delete))
    (from
      (keyword_from)
      (object_reference
        name: (identifier))
      (order_by
        (keyword_order)
        (keyword_by)
        (order_target
          (field
            name: (identifier))
          (direction
            (keyword_desc))))
      (limit
        (keyword_limit)
        (literal)))))

================================================================================
Delete table with where
================================================================================

DELETE FROM my_table
WHERE id = 9;

--------------------------------------------------------------------------------

(program
  (statement
    (delete
      (keyword_delete))
    (from
      (keyword_from)
      (object_reference
        name: (identifier))
      (where
        (keyword_where)
        predicate: (binary_expression
          left: (field
            name: (identifier))
          right: (literal))))))

================================================================================
Truncate table
================================================================================

TRUNCATE TABLE employees CASCADE;

--------------------------------------------------------------------------------

(program
  (statement
    (keyword_truncate)
    (keyword_table)
    (object_reference
      (identifier))
    (keyword_cascade)))
