# LogicTest: local

statement ok
CREATE TABLE a (
    a INT NOT NULL,
    b STRING NOT NULL,
    c INT NOT NULL,
    d INT NOT NULL,
    e STRING NOT NULL,
    f BOOL NOT NULL DEFAULT false,
    g TIMESTAMP NOT NULL DEFAULT now(),
    h STRING NOT NULL DEFAULT 'foo',
    i TIMESTAMP NOT NULL DEFAULT now(),
    j STRING NOT NULL DEFAULT 'foo',
    k DATE NULL,
    l STRING NULL,
    PRIMARY KEY (a, b, c, d, e, f),
    INDEX (a, e, k, l),
    INDEX (a, e, k, l) STORING (g, h)
);

# See #30734: the user considers the default index selection to be a bug.
query TTT
EXPLAIN DELETE FROM a WHERE a=10 AND b='10' AND c=1 AND d=3;
----
count                ·         ·
 └── delete          ·         ·
      │              from      a
      │              strategy  deleter
      └── render     ·         ·
           └── scan  ·         ·
·                    table     a@a_a_e_k_l_idx
·                    spans     /10-/11
·                    filter    ((b = '10') AND (c = 1)) AND (d = 3)

query TTT
EXPLAIN UPDATE a SET a = 3 WHERE a=10 AND b='10' AND c=1 AND d=3;
----
count                ·         ·
 └── update          ·         ·
      │              table     a
      │              set       a
      │              strategy  updater
      └── render     ·         ·
           └── scan  ·         ·
·                    table     a@primary
·                    spans     /10/"10"/1/3-/10/"10"/1/4

# Check that the default index selection can be overridden.

query TTT
EXPLAIN DELETE FROM a@primary WHERE a=10 AND b='10' AND c=1 AND d=3;
----
count                ·         ·
 └── delete          ·         ·
      │              from      a
      │              strategy  deleter
      └── render     ·         ·
           └── scan  ·         ·
·                    table     a@primary
·                    spans     /10/"10"/1/3-/10/"10"/1/4

query TTT
EXPLAIN UPDATE a@a_a_e_k_l_idx SET a = 3 WHERE a=10 AND b='10' AND c=1 AND d=3;
----
count                      ·         ·
 └── update                ·         ·
      │                    table     a
      │                    set       a
      │                    strategy  updater
      └── render           ·         ·
           └── index-join  ·         ·
                │          table     a@primary
                └── scan   ·         ·
·                          table     a@a_a_e_k_l_idx
·                          spans     /10-/11
·                          filter    ((b = '10') AND (c = 1)) AND (d = 3)
