1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
|
env = require('test_run')
---
...
test_run = env.new()
---
...
box.space._session_settings:update('sql_default_engine', {{'=', 2, 'vinyl'}})
---
- ['sql_default_engine', 'vinyl']
...
box.execute("CREATE TABLE t1_vinyl(a INT PRIMARY KEY, b INT, c INT);")
---
- row_count: 1
...
box.execute("CREATE TABLE t2_vinyl(a INT PRIMARY KEY, b INT, c INT);")
---
- row_count: 1
...
box.space._session_settings:update('sql_default_engine', {{'=', 2, 'memtx'}})
---
- ['sql_default_engine', 'memtx']
...
box.execute("CREATE TABLE t3_memtx(a INT PRIMARY KEY, b INT, c INT);")
---
- row_count: 1
...
assert(box.space.T1_VINYL.engine == 'vinyl')
---
- true
...
assert(box.space.T2_VINYL.engine == 'vinyl')
---
- true
...
assert(box.space.T3_MEMTX.engine == 'memtx')
---
- true
...
box.execute("DROP TABLE t1_vinyl;")
---
- row_count: 1
...
box.execute("DROP TABLE t2_vinyl;")
---
- row_count: 1
...
box.execute("DROP TABLE t3_memtx;")
---
- row_count: 1
...
-- gh-4422: allow to specify engine in CREATE TABLE statement.
--
box.execute("CREATE TABLE t1_vinyl (id INT PRIMARY KEY) WITH ENGINE = 'vinyl'")
---
- row_count: 1
...
assert(box.space.T1_VINYL.engine == 'vinyl')
---
- true
...
box.execute("CREATE TABLE t1_memtx (id INT PRIMARY KEY) WITH ENGINE = 'memtx'")
---
- row_count: 1
...
assert(box.space.T1_MEMTX.engine == 'memtx')
---
- true
...
box.space._session_settings:update('sql_default_engine', {{'=', 2, 'vinyl'}})
---
- ['sql_default_engine', 'vinyl']
...
box.execute("CREATE TABLE t2_vinyl (id INT PRIMARY KEY) WITH ENGINE = 'vinyl'")
---
- row_count: 1
...
assert(box.space.T2_VINYL.engine == 'vinyl')
---
- true
...
box.execute("CREATE TABLE t2_memtx (id INT PRIMARY KEY) WITH ENGINE = 'memtx'")
---
- row_count: 1
...
assert(box.space.T2_MEMTX.engine == 'memtx')
---
- true
...
box.space.T1_VINYL:drop()
---
...
box.space.T1_MEMTX:drop()
---
...
box.space.T2_VINYL:drop()
---
...
box.space.T2_MEMTX:drop()
---
...
-- Name of engine considered to be string literal, so should be
-- lowercased and quoted.
--
box.execute("CREATE TABLE t1_vinyl (id INT PRIMARY KEY) WITH ENGINE = VINYL")
---
- null
- Syntax error at line 1 near 'VINYL'
...
box.execute("CREATE TABLE t1_vinyl (id INT PRIMARY KEY) WITH ENGINE = vinyl")
---
- null
- Syntax error at line 1 near 'vinyl'
...
box.execute("CREATE TABLE t1_vinyl (id INT PRIMARY KEY) WITH ENGINE = 'VINYL'")
---
- null
- Space engine 'VINYL' does not exist
...
box.execute("CREATE TABLE t1_vinyl (id INT PRIMARY KEY) WITH ENGINE = \"vinyl\"")
---
- null
- Syntax error at line 1 near '"vinyl"'
...
-- Make sure that wrong engine name is handled properly.
--
box.execute("CREATE TABLE t_wrong_engine (id INT PRIMARY KEY) WITH ENGINE = 'abc'")
---
- null
- Space engine 'abc' does not exist
...
box.execute("CREATE TABLE t_long_engine_name (id INT PRIMARY KEY) WITH ENGINE = 'very_long_engine_name'")
---
- null
- 'Failed to create space ''T_LONG_ENGINE_NAME'': space engine name is too long'
...
|