We're updating the issue view to help you get more done.Learn more

Add a plugin to field types (column types)

Issues to solve:

  • read/write: that's easy, the plugin provides some kind of a "store" method that serializes the data into something that can be memcmp-ed. And "val" methods as appropriate.

  • indexing: not at issue, the engine thinks the column type is BINARY and indexes is accordingly

  • don't forget that field definition may use parameters, like in VARCHAR(10)

  • protocol

    • text protocol - what to send as field metadata? variant: MYSQL_TYPE_PLUGIN and a string with the type name

    • binary protocol - how to send the value to the client: variant: as a string. how the client send the value to the server? either way, the server converts it from number/string/etc just as for INSERTs

  • replication, RBR

    • similar, use MYSQL_TYPE_PLUGIN, and as additional metadata - field type as a string, parameters, whatever

So, a plugin would need to provide

  • store() method from at least some of the basic types

  • val() methods to at least some of the basic types

  • description of whatever parameters a field definition takes

  • informational methods, like store_length(), etc

This task doesn't cover everything! It is assumed that we can expand this API later to add more features. In particular, the following is not solved:

  • data types that cannot be efficiently memcmp()'ed. For example, this proposal doesn't allow to implement a string type with charset support.

  • data types that require special indexes, such as XML, spatial data, etc.

see also the original issue description in the history

Status

Assignee

Sergei Golubchik

Reporter

Roberto Spadim

Labels

Time estimate

400h

Sprint

Fix versions

Priority

Minor