github.com/RevenueMonster/sqlike@v1.0.6/TODO.md (about)

     1  #### TODO
     2  
     3  - [x] Support `Open tracing`.
     4  - [x] Change default collation to `latin1` for `currency.Unit` and `language.Tag` for better performance.
     5  - [x] Support `JSON_SET`, `JSON_REPLACE`, `JSON_REMOVE` or else.
     6  - [x] Support `sqldump`.
     7  - [x] `StructMapper` as an interface and enable to set in `Client` object.
     8  - [x] Change `StructField` to `interface{}`.
     9  - [x] Support index with files instead of single file (index.yaml).
    10  - [x] `Codec` as an interface and enable to set in `Client` object.
    11  - [x] Support unmarshal map key using `TextUnmarshaler` interface.
    12  - [x] Support `Point`.
    13  - [x] Support `LineString`.
    14  - [x] Support `primary_key` tag.
    15  - [x] Change `DataType` api.
    16  - [x] `CreateDatabase` api.
    17  - [x] Escape wildcard `%`, `_` on `LIKE` condition.
    18  - [x] Add `Database` name as `table` prefix.
    19  - [x] Add `Field` api.
    20  - [x] Allow nil on where conditions, skip it if `nil` or invalid.
    21  - [x] Support auto build index.
    22  - [x] Expression `In` and `NotIn`.
    23  - [x] Cursor pagination using `Paginate` api.
    24  - [x] Support aggregate functions `Max`, `Min`, `Count`, `Avg`, `Sum`.
    25  - [x] Connect to `MySQL` server with `options.Connect`.
    26  - [x] Support omit options on `InsertOne` and `Insert`.
    27  - [x] Change default primary key with `SetPrimaryKey`.
    28  - [x] Support extra options like `charset` and `collation` in connection.
    29  - [x] Get `MySQL` server version.
    30  - [x] Drop selected `Database`.
    31  - [x] Support omit options on `ModifyOne`.
    32  - [x] List all `Database`.
    33  - [x] Support `Tag` such as `auto_increment`, `charset`, `size`, `unsigned`, `enum`, `longtext`, `generated_column`, `virtual_column`, `stored_column`.
    34  - [x] :bulb: Truncate selected `Table`.
    35  - [x] :bulb: List all column for selected `Table`.
    36  - [x] Add index using `CreateOne` and `CreateMany`.
    37  - [x] :bulb: Drop selected `Table`.
    38  - [x] :bulb: Rename `Table`.
    39  - [x] :bulb: Check `Table` exists.
    40  - [x] :bulb: Create single `Index` (support `unique`, `fulltext` and `spatial`).
    41  - [x] :bulb: Support primary key on `Migration`.
    42  - [x] :bulb: Create multiple `Index`.
    43  - [x] :bulb: List all `Index`.
    44  - [x] :bulb: Drop selected `Index`.
    45  - [x] :bulb: `Transaction` support.
    46  - [x] :bulb: Add timeout for `Transaction`.
    47  - [x] :bug: Virtual column sequence in `ALTER TABLE`.
    48  - [x] Support custom type `Key`.
    49  - [x] Support custom type `Date`.
    50  - [x] :bulb: Create `Logger`.
    51  - [x] :bulb: Custom `JSON` encoder (w/o cover `Map` datatype).
    52  - [x] Custom `JSON` decoder.
    53  - [x] :bug: `UnmarshalJSONB` into `[]byte`.
    54  - [x] :bulb: Single database `Migration`.
    55  - [x] :bulb: Support `generated_column` for `Migration` (`virtual_column` or stored_column`)
    56  - [x] Support `UnsafeMigrate`.
    57  - [x] Support `MustUnsafeMigrate`.
    58  - [x] :bulb: `InsertIgnore` & `Upsert`.
    59  - [x] Set omit or setter fields on `Upsert`.
    60  - [x] Insert single record into `Table`.
    61  - [x] Insert multiple record into `Table`.
    62  - [x] Retrieve single record from `Table`.
    63  - [x] Retrieve multiple record from `Table`.
    64  - [x] Update single record.
    65  - [x] Modify single record using primary key.
    66  - [x] Update multiple record.
    67  - [x] Delete single record using primary key.
    68  - [x] Delete multiple record.
    69  - [x] Delete single record.
    70  - [x] Replace into API.
    71  - [x] Support option tag `unique_index` with create table.
    72  - [x] Support option tag `unique_index` with alter table.
    73  - [x] Support `charset` and `collate` on `Connect` and `CreateDatabase`.
    74  - [x] :bug: (jsonb) Support nested `json.RawMessage` unmarshal.
    75  - [x] Support comment.
    76  - [ ] Support spatial `Polygon`.
    77  - [ ] Support `charset` and `collate` on `AlterTable`.
    78  - [ ] BeforeSave and AfterLoad hook.
    79  - [ ] Support migration like `django`.
    80  - [ ] Comprehensive `testcase`.
    81  - [ ] Support insert with map.
    82  - [ ] Support foreign key.
    83  - [ ] Support multiple tag (reflext).
    84  - [ ] Support proxy mode for master-slave topology.
    85  - [ ] Support any of [index](https://dev.mysql.com/doc/refman/8.0/en/create-index.html).
    86  - [ ] Support [skip locked](https://mysqlserverteam.com/mysql-8-0-1-using-skip-locked-and-nowait-to-handle-hot-rows/).
    87  - [ ] [BREAKING CHANGE] collate should reside in charset package.