# 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
      └── 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
      └── 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
      └── 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
      └── render           ·       ·
           └── index-join  ·       ·
                ├── scan   ·       ·
                │          table   a@a_a_e_k_l_idx
                │          spans   /10-/11
                │          filter  ((b = '10') AND (c = 1)) AND (d = 3)
                └── scan   ·       ·
·                          table   a@primary
