docs: def _get_crud_params(compiler, stmt, **kw):
          """ extract values from crud parameters
  
          taken from SQLAlchemy's crud module (since 1.0.x) and
          adapted for Crate dialect"""
  
          compiler.postfetch = []
          compiler.insert_prefetch = []
          compiler.update_prefetch = []
          compiler.returning = []
  
          # no parameters in the statement, no parameters in the
          # compiled params - return binds for all columns
          if compiler.column_keys is None and stmt.parameters is None:
              return [(c, crud._create_bind_param(compiler, c, None,
                                                  required=True))
                      for c in stmt.table.columns]
  
          if stmt._has_multi_parameters:
              stmt_parameters = stmt.parameters[0]
          else:
              stmt_parameters = stmt.parameters
  
          # getters - these are normally just column.key,
          # but in the case of mysql multi-table update, the rules for
          # .key must conditionally take tablename into account
          if SA_VERSION >= SA_1_1:
              _column_as_key, _getattr_col_key, _col_bind_name = \
                  crud._key_getters_for_crud_column(compiler, stmt)
          else:
              _column_as_key, _getattr_col_key, _col_bind_name = \
                  crud._key_getters_for_crud_column(compiler)
  
          # if we have statement parameters - set defaults in the
          # compiled params
          if compiler.column_keys is None:
              parameters = {}
          else:
              parameters = dict((_column_as_key(key), crud.REQUIRED)
                                for key in compiler.column_keys
                                if not stmt_parameters or
                                key not in stmt_parameters)
  
          # create a list of column assignment clauses as tuples
          values = []
  
          if stmt_parameters is not None:
              crud._get_stmt_parameters_params(
                  compiler,
                  parameters, stmt_parameters, _column_as_key, values, kw)
  
          check_columns = {}
  
          crud._scan_cols(compiler, stmt, parameters,
                          _getattr_col_key, _column_as_key,
                          _col_bind_name, check_columns, values, kw)
  
          if stmt._has_multi_parameters:
              values = crud._extend_values_for_multiparams(compiler, stmt,
                                                           values, kw)
  
          return values