Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-27106

Spider: specify connection to data node by engine-defined attributes

Details

    Description

      The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

      We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

      I believe that the following attributes are enough:

      engine-defined attribute corresponding DNS parameter
      REMOTE_SERVER srv
      REMOTE_DATABASE database
      REMOTE_TABLE tbl

      Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should encourage the use of the CREATE SERVER statement, and not introduce attributes such as REMOTE_USER and REMOTE_PASSWORD.

      SSL-related parameters might be essential but I believe that they should be covered by CREATE SERVER statement rather than per-table or per-partition attributes.

      If, for example, both COMMENT='table "t1"' and REMOTE_TABLE="t2" are specified for a single table or a single partition, the Spider returns an error.

      Example:

      CREATE TABLE `users` (
          `id` INT,
          `name` VARCHAR(255)
      ) ENGINE=SPIDER REMOTE_TABLE="users"
      PARTITION BY HASH(id)
      (
          PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
          PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
          PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
      );
      

      TODO:

      • Introduce engine-defined attributes described above;
      • Make Spider to use the attributes;
      • Write comprehensive test cases;
      • Refactor entire patch.

      Attachments

        Issue Links

          Activity

            GeoffMontee Geoff Montee (Inactive) created issue -
            GeoffMontee Geoff Montee (Inactive) made changes -
            Field Original Value New Value
            GeoffMontee Geoff Montee (Inactive) made changes -
            GeoffMontee Geoff Montee (Inactive) made changes -
            GeoffMontee Geoff Montee (Inactive) made changes -
            julien.fritsch Julien Fritsch made changes -
            Fix Version/s 10.4 [ 23604 ]
            Fix Version/s 10.3 [ 23605 ]
            Fix Version/s 10.5 [ 23608 ]
            GeoffMontee Geoff Montee (Inactive) made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            Fix Version/s N/A [ 23617 ]
            Fix Version/s 10.4 [ 23604 ]
            Fix Version/s 10.3 [ 23605 ]
            Fix Version/s 10.5 [ 23608 ]
            GeoffMontee Geoff Montee (Inactive) made changes -
            GeoffMontee Geoff Montee (Inactive) made changes -
            GeoffMontee Geoff Montee (Inactive) made changes -
            clieu Christine Lieu (Inactive) made changes -
            GeoffMontee Geoff Montee (Inactive) made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            Fix Version/s 10.6 [ 24027 ]
            Fix Version/s N/A [ 23617 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Assignee Ralf Gebhardt [ ralf.gebhardt@mariadb.com ] Kentoku Shiba [ kentoku ]
            ralf.gebhardt Ralf Gebhardt made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            Fix Version/s 10.6 [ 24027 ]
            julien.fritsch Julien Fritsch made changes -
            Fix Version/s 10.7 [ 25034 ]
            serg Sergei Golubchik made changes -
            serg Sergei Golubchik made changes -
            serg Sergei Golubchik made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            Fix Version/s 10.7 [ 25034 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Assignee Kentoku Shiba [ kentoku ] Nayuta Yanagisawa [ JIRAUSER47117 ]
            serg Sergei Golubchik made changes -
            Priority Major [ 3 ] Critical [ 2 ]
            julien.fritsch Julien Fritsch made changes -
            Fix Version/s 10.8 [ 26501 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Status Open [ 1 ] In Progress [ 3 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Affects Version/s 10.8 [ 26501 ]
            Affects Version/s 10.4 [ 23604 ]
            Affects Version/s 10.3 [ 23605 ]
            Affects Version/s 10.5 [ 23608 ]
            ralf.gebhardt Ralf Gebhardt made changes -
            Component/s Storage Engine - Spider [ 10132 ]
            Component/s Storage Engine - Spider [ 14994 ]
            Fix Version/s 10.8 [ 26121 ]
            Fix Version/s 10.8 [ 26501 ]
            Key MENT-763 MDEV-27106
            Affects Version/s 10.8 [ 26501 ]
            Project MariaDB Enterprise [ 11500 ] MariaDB Server [ 10000 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Summary Implement proper table options for SPIDER Spider: specify connection to data node by engine-defined attributes
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description With Spider, you currently have to set its options in the {{COMMENT}} field for the Spider table. For example:

            {code:sql}
            CREATE TABLE spider_hq_sales.invoices (
                     id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
                     customer_id INT,
                     branch_id INT,
                     invoice_date DATETIME(6),
                     invoice_total DECIMAL(13, 2),
                     payment_method ENUM('NONE', 'CASH', 'WIRE_TRANSFER', 'CREDIT_CARD', 'GIFT_CARD')
                  ) ENGINE=Spider
                  COMMENT='server "hq_server", table "invoices"';
            {code}

            However, I think that it would be more user-friendly if Spider supported proper table options. For example, the above statement could be transformed into something like this:

            {code:sql}
            CREATE TABLE spider_hq_sales.invoices (
                     id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
                     customer_id INT,
                     branch_id INT,
                     invoice_date DATETIME(6),
                     invoice_total DECIMAL(13, 2),
                     payment_method ENUM('NONE', 'CASH', 'WIRE_TRANSFER', 'CREDIT_CARD', 'GIFT_CARD')
            ) ENGINE=Spider
            REMOTE_SERVER="hq_server"
            REMOTE_TABLE="invoices";
            {code}

            It would at least be nice to transform the most common options into table options, such as:

            * server - This is the server name defined in the CREATE SERVER statement.
            * table - The remote table to query.
            * ssl_ca - The path to the TLS certificate authority chain.
            * ssl_capath - The path to the TLS certificate authority chain.
            * ssl_cert - The path to the TLS client certificate.
            * ssl_key - The path to the TLS private key.
            * ssl_cipher - The path to the TLS certificate authority chain.
            * wrapper - The foreign data wrapper should be mariadb or mysql.
            * host - The hostname or IP address to use when connecting to the remote server. This option is mututally exclusive with socket.
            * port - The port to use when connecting to the remote server. This option is mututally exclusive with socket.
            * socket - The path to the Unix socket file to use when connecting to the remote server. This option is mututally exclusive with user and port.
            * user - The username to use when connecting to the remote server.
            * password - The password to use when connecting to the remote server.
            * database - The database to select when connecting to the remote server.

            In addition to these common ones, Spider also has a lot of less common ones. It may be a good idea to transform some others into proper table options as well. You can view the full list in the source code here:

            https://github.com/MariaDB/server/blob/mariadb-10.4.13/storage/spider/spd_table.cc#L2211
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/

            We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine attribute || DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|
            |REMOTE_WRAPPER|wrapper|

            SSL-related parameters might be essential but I believe that it should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_WRAPPER="mysql" REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/

            We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine attribute || DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|
            |REMOTE_WRAPPER|wrapper|

            SSL-related parameters might be essential but I believe that it should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_WRAPPER="mysql" REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/

            We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|
            |REMOTE_WRAPPER|wrapper|

            SSL-related parameters might be essential but I believe that it should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_WRAPPER="mysql" REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/

            We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|
            |REMOTE_WRAPPER|wrapper|

            SSL-related parameters might be essential but I believe that it should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_WRAPPER="mysql" REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/

            We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|
            |REMOTE_WRAPPER|wrapper|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_WRAPPER="mysql" REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/

            We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|
            |REMOTE_WRAPPER|wrapper|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_WRAPPER="mysql" REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/

            We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/

            We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/

            We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes (see MENT-762).

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/

            We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes (see MENT-762).

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/

            We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce yet another way to specify remote data nodes. We introduce engine-defined attributes that correspond to a subset of the existing DNS parameters. https://mariadb.com/kb/en/spider-table-system-variables/

            We do not cover all the existing parameters because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TBD:

            * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified.

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TBD:

            * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified.

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|
            |REMOTE_HOST|host|
            |REMOTE_PORT|port|
            |REMOTE_USER|user|
            |REMMOTE_PASSWORD|password|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TBD:

            * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified.

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |REMOTE_SERVER| srv|
            |REMOTE_DATABASE| database|
            |REMOTE_TABLE|tbl|
            |REMOTE_HOST|host|
            |REMOTE_PORT|port|
            |REMOTE_USER|user|
            |REMMOTE_PASSWORD|password|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TBD:

            * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified.

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE|}}tbl|
            |{{REMOTE_HOST}}|host|
            |{{REMOTE_PORT}}|port|
            |{{REMOTE_USER}}|user|
            |{{REMMOTE_PASSWORD}}|password|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TBD:

            * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified.

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE|}}tbl|
            |{{REMOTE_HOST}}|host|
            |{{REMOTE_PORT}}|port|
            |{{REMOTE_USER}}|user|
            |{{REMMOTE_PASSWORD}}|password|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TBD:

            * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified.

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|
            |{{REMOTE_HOST}}|host|
            |{{REMOTE_PORT}}|port|
            |{{REMOTE_USER}}|user|
            |{{REMMOTE_PASSWORD}}|password|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TBD:

            * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified.

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|
            |{{REMOTE_HOST}}|host|
            |{{REMOTE_PORT}}|port|
            |{{REMOTE_USER}}|user|
            |{{REMMOTE_PASSWORD}}|password|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TBD:

            * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified.

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|
            |{{REMOTE_HOST}}|host|
            |{{REMOTE_PORT}}|port|
            |{{REMOTE_USER}}|user|
            |{{REMOTE_PASSWORD}}|password|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TBD:

            * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified.

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|
            |{{REMOTE_HOST}}|host|
            |{{REMOTE_PORT}}|port|
            |{{REMOTE_USER}}|user|
            |{{REMOTE_PASSWORD}}|password|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TBD:

            * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified.

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TBD:

            * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified.

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TBD:

            * (x) What happens if, for example, both {{COMMENT="tbl: 't1'"}} and {{REMOTE_TABLE="t1"}} are specified.

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            If, for example, both {COMMENT='"table"

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            If, for example, both {COMMENT='"table"

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing parameters|https://mariadb.com/kb/en/spider-table-system-variables/ ] because only a few of the parameters seem to actually be used. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing DNS parameters|https://mariadb.com/kb/en/spider-server-system-variables/] because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing DNS parameters|https://mariadb.com/kb/en/spider-server-system-variables/] because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing DSN parameters|https://mariadb.com/kb/en/spider-server-system-variables/] because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause. However, writing every specification in a single connection string is not very user-friendly.

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the [existing DSN parameters|https://mariadb.com/kb/en/spider-server-system-variables/] because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

            * https://mariadb.com/kb/en/spider-table-system-variables/
            * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

            * https://mariadb.com/kb/en/spider-table-system-variables/
            * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (x) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

            * https://mariadb.com/kb/en/spider-table-system-variables/
            * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (/) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

            * https://mariadb.com/kb/en/spider-table-system-variables/
            * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, {{REMOTE_TABLE}} takes precedence.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (/) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

            * https://mariadb.com/kb/en/spider-table-system-variables/
            * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            The corresponding options cannot be specified by COMMENT and engine-defined options at the same time. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (/) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

            * https://mariadb.com/kb/en/spider-table-system-variables/
            * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            The corresponding options cannot be specified by COMMENT and engine-defined options at the same time. If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (/) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

            * https://mariadb.com/kb/en/spider-table-system-variables/
            * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, COMMENT takes precedence.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (/) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

            * https://mariadb.com/kb/en/spider-table-system-variables/
            * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, COMMENT takes precedence.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (/) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

            * https://mariadb.com/kb/en/spider-table-system-variables/
            * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (/) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

            * https://mariadb.com/kb/en/spider-table-system-variables/
            * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (/) Introduce engine-defined attributes described above;
            * (x) Make Spider to use the attributes;
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

            * https://mariadb.com/kb/en/spider-table-system-variables/
            * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (/) Introduce engine-defined attributes described above;
            * (/) Make Spider to use the attributes;
            * (x) Write comprehensive test cases;
            * (x) Refactor entire patch.
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

            * https://mariadb.com/kb/en/spider-table-system-variables/
            * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (/) Introduce engine-defined attributes described above;
            * (/) Make Spider to use the attributes;
            * (x) Write comprehensive test cases;
            * (x) Refactor entire patch.
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

            * https://mariadb.com/kb/en/spider-table-system-variables/
            * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (/) Introduce engine-defined attributes described above;
            * (/) Make Spider to use the attributes;
            * (/) Write comprehensive test cases;
            * (/) Refactor entire patch.
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Assignee Nayuta Yanagisawa [ JIRAUSER47117 ] Alexey Botchkov [ holyfoot ]
            Status In Progress [ 3 ] In Review [ 10002 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

            * https://mariadb.com/kb/en/spider-table-system-variables/
            * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should recommend the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (/) Introduce engine-defined attributes described above;
            * (/) Make Spider to use the attributes;
            * (/) Write comprehensive test cases;
            * (/) Refactor entire patch.
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

            * https://mariadb.com/kb/en/spider-table-system-variables/
            * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should encourage the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (/) Introduce engine-defined attributes described above;
            * (/) Make Spider to use the attributes;
            * (/) Write comprehensive test cases;
            * (/) Refactor entire patch.
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 108594 ] MariaDB v4 [ 131777 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            holyfoot Alexey Botchkov made changes -
            Assignee Alexey Botchkov [ holyfoot ] Nayuta Yanagisawa [ JIRAUSER47117 ]
            Status In Review [ 10002 ] Stalled [ 10000 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Status Stalled [ 10000 ] In Progress [ 3 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Assignee Nayuta Yanagisawa [ JIRAUSER47117 ] Alexey Botchkov [ holyfoot ]
            Status In Progress [ 3 ] In Review [ 10002 ]
            holyfoot Alexey Botchkov made changes -
            Assignee Alexey Botchkov [ holyfoot ] Nayuta Yanagisawa [ JIRAUSER47117 ]
            Status In Review [ 10002 ] Stalled [ 10000 ]
            serg Sergei Golubchik made changes -
            Status Stalled [ 10000 ] In Testing [ 10301 ]
            serg Sergei Golubchik made changes -
            Assignee Nayuta Yanagisawa [ JIRAUSER47117 ]
            serg Sergei Golubchik made changes -
            Assignee Roel Van de Paar [ roel ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Description The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

            * https://mariadb.com/kb/en/spider-table-system-variables/
            * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should encourage the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified, the Spider returns an error.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (/) Introduce engine-defined attributes described above;
            * (/) Make Spider to use the attributes;
            * (/) Write comprehensive test cases;
            * (/) Refactor entire patch.
            The Spider storage engine provides two ways to specify remote data nodes. One is by the COMMENT clause and the other is by the CONNECTION clause (see below links for existing options). However, writing every specification in a single connection string is not very user-friendly.

            * https://mariadb.com/kb/en/spider-table-system-variables/
            * https://mariadb.com/kb/en/spider-server-system-variables/ (DSN parameter)

            We introduce new engine-defined attributes to specify remote data nodes. The engine attributes do not cover all the existing DSN parameters because most of the parameters need not be specified at the table level. So, we first introduce engine-defined attributes that correspond to essential parameters. If users complain that a parameter they need is missing, we can introduce it later.

            I believe that the following attributes are enough:

            || engine-defined attribute || corresponding DNS parameter ||
            |{{REMOTE_SERVER}}| srv|
            |{{REMOTE_DATABASE}}| database|
            |{{REMOTE_TABLE}}|tbl|

            Writing a raw password in the COMMENT or engine-defined option is not preferable from the viewpoint of security because the password might be logged in slow log or general log. Therefore, we should encourage the use of the CREATE SERVER statement, and not introduce attributes such as {{REMOTE_USER}} and {{REMOTE_PASSWORD}}.

            SSL-related parameters might be essential but I believe that they should be covered by {{CREATE SERVER}} statement rather than per-table or per-partition attributes.

            If, for example, both {{COMMENT='table "t1"'}} and {{REMOTE_TABLE="t2"}} are specified for a single table or a single partition, the Spider returns an error.

            Example:

            {code:sql}
            CREATE TABLE `users` (
                `id` INT,
                `name` VARCHAR(255)
            ) ENGINE=SPIDER REMOTE_TABLE="users"
            PARTITION BY HASH(id)
            (
                PARTITION `pt1` REMOTE_SERVER="s1" REMOTE_DATABASE="db1",
                PARTITION `pt2` REMOTE_SERVER="s1" REMOTE_DATABASE="db2",
                PARTITION `pt3` REMOTE_SERVER="s2" REMOTE_DATABASE="db1"
            );
            {code}

            TODO:

            * (/) Introduce engine-defined attributes described above;
            * (/) Make Spider to use the attributes;
            * (/) Write comprehensive test cases;
            * (/) Refactor entire patch.
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            serg Sergei Golubchik made changes -
            Roel Roel Van de Paar made changes -
            Assignee Roel Van de Paar [ roel ] Sergei Golubchik [ serg ]
            Status In Testing [ 10301 ] Stalled [ 10000 ]
            Roel Roel Van de Paar made changes -
            serg Sergei Golubchik made changes -
            Assignee Sergei Golubchik [ serg ] Nayuta Yanagisawa [ JIRAUSER47117 ]
            serg Sergei Golubchik made changes -
            Priority Critical [ 2 ] Blocker [ 1 ]
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Fix Version/s 10.8.1 [ 26815 ]
            Fix Version/s 10.8 [ 26121 ]
            Resolution Done [ 10200 ]
            Status Stalled [ 10000 ] Closed [ 6 ]
            Roel Roel Van de Paar made changes -
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            Labels Preview_10.8
            ycp Yuchen Pei made changes -
            ralf.gebhardt Ralf Gebhardt made changes -

            People

              nayuta-yanagisawa Nayuta Yanagisawa (Inactive)
              GeoffMontee Geoff Montee (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.