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) added a comment - Please review. The patch depends on one for MDEV-5271 . https://github.com/MariaDB/server/commit/ae9e72ca06d95947e44ef0801c94fbac6882b38e
            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 -

            see minor comments to the patch.

            holyfoot Alexey Botchkov added a comment - see minor comments to the patch.
            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 ]

            holyfoot Thank you for your review. I fixed the patch according to your comments. Please check it again. https://github.com/MariaDB/server/commit/384f9d34ff29fe81de234c48516ccf257b9b10f5

            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) added a comment - holyfoot Thank you for your review. I fixed the patch according to your comments. Please check it again. https://github.com/MariaDB/server/commit/384f9d34ff29fe81de234c48516ccf257b9b10f5
            nayuta-yanagisawa Nayuta Yanagisawa (Inactive) made changes -
            Assignee Nayuta Yanagisawa [ JIRAUSER47117 ] Alexey Botchkov [ holyfoot ]
            Status In Progress [ 3 ] In Review [ 10002 ]

            Ok to push.

            holyfoot Alexey Botchkov added a comment - Ok to push.
            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 added a comment - - edited

            Logged MDEV-27400 Spider attempts localhost TCP/IP connection, even when none is specified.

            Roel Roel Van de Paar added a comment - - edited Logged MDEV-27400 Spider attempts localhost TCP/IP connection, even when none is specified.
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -
            Roel Roel Van de Paar made changes -

            Logged MDEV-27521 SIGSEGV in spider_parse_connect_info in MDEV-27106 branch

            Roel Roel Van de Paar added a comment - Logged MDEV-27521 SIGSEGV in spider_parse_connect_info in MDEV-27106 branch
            Roel Roel Van de Paar made changes -
            serg Sergei Golubchik made changes -

            Confirming this comment, it is interesting to note that Spider already supported MDEV-5271-like functionality (i.e. per partition engine-defined attributes) using the comment field. iow, in the comment field one could specify per-partition options even before MDEV-5271 was implemented.

            Roel Roel Van de Paar added a comment - Confirming this comment , it is interesting to note that Spider already supported MDEV-5271 -like functionality (i.e. per partition engine-defined attributes) using the comment field. iow, in the comment field one could specify per-partition options even before MDEV-5271 was implemented.

            As the COMMENT field functionality was not changed in any way, and as any new SQL syntax is 10.8-only, I did not do any upgrade testing for this issue. nayuta-yanagisawa and serg If you think any should be done, please let me know your thoughts.

            Roel Roel Van de Paar added a comment - As the COMMENT field functionality was not changed in any way, and as any new SQL syntax is 10.8-only, I did not do any upgrade testing for this issue. nayuta-yanagisawa and serg If you think any should be done, please let me know your thoughts.

            OK to push. However, I am still running a generic crash test against the feature branch (including the MDEV-27521 patch). Results from that will be available around next week Wednesday.

            Roel Roel Van de Paar added a comment - OK to push. However, I am still running a generic crash test against the feature branch (including the MDEV-27521 patch). Results from that will be available around next week Wednesday.
            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 -
            Roel Roel Van de Paar added a comment - - edited

            From the same run, logged MDEV-27575 SIGSEGV in intern_plugin_lock on SHUTDOWN when setting Spider as default storage engine (temporary or global)

            Roel Roel Van de Paar added a comment - - edited From the same run, logged MDEV-27575 SIGSEGV in intern_plugin_lock on SHUTDOWN when setting Spider as default storage engine (temporary or global)
            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 -
            Roel Roel Van de Paar added a comment - - edited

            Logged MDEV-27676 Assertion `str.alloced_length() >= str.length() + data_len' failed in spider_string::q_append

            Roel Roel Van de Paar added a comment - - edited Logged MDEV-27676 Assertion `str.alloced_length() >= str.length() + data_len' failed in spider_string::q_append
            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 added a comment - - edited

            Hi greenman, how much work do you think is needed to document the nice feature introduced in this ticket in the KB?

            ycp Yuchen Pei added a comment - - edited Hi greenman , how much work do you think is needed to document the nice feature introduced in this ticket in the KB?
            ycp Yuchen Pei made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            ycp Yuchen Pei added a comment -

            > Hi Ian Gilfillan, how much work do you think is needed to document the nice feature introduced in this ticket in the KB?

            I added to the kb two weeks ago: https://mariadb.com/kb/en/spider-storage-engine-overview/#basic-usage

            ycp Yuchen Pei added a comment - > Hi Ian Gilfillan, how much work do you think is needed to document the nice feature introduced in this ticket in the KB? I added to the kb two weeks ago: https://mariadb.com/kb/en/spider-storage-engine-overview/#basic-usage

            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.