106 lines
4.1 KiB
YAML
106 lines
4.1 KiB
YAML
parallel: true
|
||
tests:
|
||
|
||
- name: wide text column table replicates correctly
|
||
skip: "cluster replication/failover not yet implemented in Doltgres"
|
||
multi_repos:
|
||
- name: server1
|
||
with_files:
|
||
- name: server.yaml
|
||
contents: |
|
||
log_level: trace
|
||
behavior:
|
||
auto_gc_behavior:
|
||
enable: false
|
||
cluster:
|
||
standby_remotes:
|
||
- name: standby
|
||
remote_url_template: http://localhost:{{get_port "server2_cluster"}}/{database}
|
||
bootstrap_role: primary
|
||
bootstrap_epoch: 1
|
||
remotesapi:
|
||
port: {{get_port "server1_cluster"}}
|
||
server:
|
||
args: ["--config", "server.yaml"]
|
||
dynamic_port: server1
|
||
- name: server2
|
||
with_files:
|
||
- name: server.yaml
|
||
contents: |
|
||
log_level: trace
|
||
behavior:
|
||
auto_gc_behavior:
|
||
enable: false
|
||
cluster:
|
||
standby_remotes:
|
||
- name: standby
|
||
remote_url_template: http://localhost:{{get_port "server1_cluster"}}/{database}
|
||
bootstrap_role: standby
|
||
bootstrap_epoch: 1
|
||
remotesapi:
|
||
port: {{get_port "server2_cluster"}}
|
||
server:
|
||
args: ["--config", "server.yaml"]
|
||
dynamic_port: server2
|
||
connections:
|
||
- on: server1
|
||
queries:
|
||
- exec: 'SET dolt_cluster_ack_writes_timeout_secs = 10'
|
||
- exec: 'CREATE DATABASE repo1'
|
||
- exec: 'USE repo1'
|
||
# 20 TEXT columns × 2 KB per cell = ~40 KB of out-of-band data per row.
|
||
# Each row requires 20 separate external chunk references.
|
||
- exec: |
|
||
CREATE TABLE wide_text (
|
||
id BIGINT PRIMARY KEY,
|
||
t00 TEXT, t01 TEXT, t02 TEXT, t03 TEXT, t04 TEXT,
|
||
t05 TEXT, t06 TEXT, t07 TEXT, t08 TEXT, t09 TEXT,
|
||
t10 TEXT, t11 TEXT, t12 TEXT, t13 TEXT, t14 TEXT,
|
||
t15 TEXT, t16 TEXT, t17 TEXT, t18 TEXT, t19 TEXT
|
||
)
|
||
- exec: |
|
||
INSERT INTO wide_text VALUES
|
||
(1,
|
||
REPEAT('a',2000), REPEAT('b',2000), REPEAT('c',2000), REPEAT('d',2000), REPEAT('e',2000),
|
||
REPEAT('f',2000), REPEAT('g',2000), REPEAT('h',2000), REPEAT('i',2000), REPEAT('j',2000),
|
||
REPEAT('k',2000), REPEAT('l',2000), REPEAT('m',2000), REPEAT('n',2000), REPEAT('o',2000),
|
||
REPEAT('p',2000), REPEAT('q',2000), REPEAT('r',2000), REPEAT('s',2000), REPEAT('t',2000))
|
||
- exec: |
|
||
INSERT INTO wide_text VALUES
|
||
(2,
|
||
REPEAT('A',2000), REPEAT('B',2000), REPEAT('C',2000), REPEAT('D',2000), REPEAT('E',2000),
|
||
REPEAT('F',2000), REPEAT('G',2000), REPEAT('H',2000), REPEAT('I',2000), REPEAT('J',2000),
|
||
REPEAT('K',2000), REPEAT('L',2000), REPEAT('M',2000), REPEAT('N',2000), REPEAT('O',2000),
|
||
REPEAT('P',2000), REPEAT('Q',2000), REPEAT('R',2000), REPEAT('S',2000), REPEAT('T',2000))
|
||
- exec: |
|
||
INSERT INTO wide_text VALUES
|
||
(3,
|
||
REPEAT('1',2000), REPEAT('2',2000), REPEAT('3',2000), REPEAT('4',2000), REPEAT('5',2000),
|
||
REPEAT('6',2000), REPEAT('7',2000), REPEAT('8',2000), REPEAT('9',2000), REPEAT('0',2000),
|
||
REPEAT('1',2000), REPEAT('2',2000), REPEAT('3',2000), REPEAT('4',2000), REPEAT('5',2000),
|
||
REPEAT('6',2000), REPEAT('7',2000), REPEAT('8',2000), REPEAT('9',2000), REPEAT('0',2000))
|
||
- query: "SELECT COUNT(*) AS count FROM wide_text WHERE LENGTH(t00) = 2000 AND LENGTH(t19) = 2000"
|
||
result:
|
||
columns: ["count"]
|
||
rows: [["3"]]
|
||
- query: "SELECT LEFT(t00,1) AS t00, LEFT(t10,1) AS t10 FROM wide_text WHERE id = 1"
|
||
result:
|
||
columns: ["t00","t10"]
|
||
rows: [["a","k"]]
|
||
- on: server2
|
||
retry_attempts: 100
|
||
queries:
|
||
- exec: 'USE repo1'
|
||
- query: "SELECT COUNT(*) AS count FROM wide_text WHERE LENGTH(t00) = 2000 AND LENGTH(t19) = 2000"
|
||
result:
|
||
columns: ["count"]
|
||
rows: [["3"]]
|
||
- query: "SELECT LEFT(t00,1) AS t00, LEFT(t10,1) AS t10 FROM wide_text WHERE id = 1"
|
||
result:
|
||
columns: ["t00","t10"]
|
||
rows: [["a","k"]]
|
||
- query: "SELECT LEFT(t00,1) AS t00, LEFT(t10,1) AS t10 FROM wide_text WHERE id = 2"
|
||
result:
|
||
columns: ["t00","t10"]
|
||
rows: [["A","K"]]
|