splitColumnDefTableConstraints = (columnDefTableConstraints) => {
  const [fieldsData, indexes, tableRefs, columnDefaults, checkConstraints] = columnDefTableConstraints.reduce((acc, columnDefTableConstraint) => {
    switch (columnDefTableConstraint.kind) {
      case TABLE_CONSTRAINT_KIND.FIELD:
        acc[0].push(columnDefTableConstraint.value);
        break;

      case TABLE_CONSTRAINT_KIND.INDEX:
      case TABLE_CONSTRAINT_KIND.PK:
      case TABLE_CONSTRAINT_KIND.UNIQUE:
        acc[1].push(columnDefTableConstraint.value);
        break;

      case TABLE_CONSTRAINT_KIND.FK:
        acc[2].push(columnDefTableConstraint.value);
        break;

      case TABLE_CONSTRAINT_KIND.DEFAULT:
        acc[3].push(columnDefTableConstraint.value);
        break;

      case TABLE_CONSTRAINT_KIND.CHECK:
        acc[4].push(columnDefTableConstraint.value);
        break;

      default:
        break;
    }

    return acc;
  }, [[], [], [], [], []]);

  return {
    fieldsData,
    indexes,
    tableRefs,
    columnDefaults,
    checkConstraints,
  };
}
@param {any[]} columnDefTableConstraints
@returns {{
 fieldsData: any[],
 indexes: any[],
 tableRefs: any[],
 columnDefaults: any[],
 checkConstraints: any[],
}}