github.com/cockroachdb/cockroach@v20.2.0-alpha.1+incompatible/pkg/sql/logictest/testdata/logic_test/int_size (about) 1 # LogicTest: !3node-tenant 2 subtest defaults 3 4 query T 5 SHOW default_int_size 6 ---- 7 8 8 9 subtest set_int4 10 11 statement ok 12 SET default_int_size=4 13 14 query T 15 SHOW default_int_size 16 ---- 17 4 18 19 statement ok 20 CREATE TABLE i4 (i4 INT) 21 22 query TT 23 SHOW CREATE TABLE i4 24 ---- 25 i4 CREATE TABLE i4 ( 26 i4 INT4 NULL, 27 FAMILY "primary" (i4, rowid) 28 ) 29 30 subtest set_int8 31 32 statement ok 33 SET default_int_size=8 34 35 query T 36 SHOW default_int_size 37 ---- 38 8 39 40 statement ok 41 CREATE TABLE i8 (i8 INT) 42 43 query TT 44 SHOW CREATE TABLE i8 45 ---- 46 i8 CREATE TABLE i8 ( 47 i8 INT8 NULL, 48 FAMILY "primary" (i8, rowid) 49 ) 50 51 # https://github.com/cockroachdb/cockroach/issues/32846 52 subtest issue_32846 53 54 statement ok 55 SET default_int_size=8 56 57 # Parsing and evaluation are async, so the setting won't take 58 # effect until the next statement is evaluated. 59 statement ok 60 SET default_int_size=4; CREATE TABLE late4 (a INT) 61 62 query TT 63 SHOW CREATE TABLE late4 64 ---- 65 late4 CREATE TABLE late4 ( 66 a INT8 NULL, 67 FAMILY "primary" (a, rowid) 68 ) 69 70 query T 71 SHOW default_int_size 72 ---- 73 4 74 75 subtest set_bad_value 76 77 statement error pq: only 4 or 8 are supported by default_int_size 78 SET default_int_size=2 79 80 # We want to check the combinations of default_int_size and 81 # experimental_serialization_normalization. 82 83 subtest serial_rowid 84 # When using rowid, we should always see INT8, since that's the 85 # return type of unique_rowid() 86 87 statement ok 88 SET default_int_size=4; SET serial_normalization='rowid'; 89 90 statement ok 91 CREATE TABLE i4_rowid (a SERIAL) 92 93 query TT 94 SHOW CREATE TABLE i4_rowid 95 ---- 96 i4_rowid CREATE TABLE i4_rowid ( 97 a INT8 NOT NULL DEFAULT unique_rowid(), 98 FAMILY "primary" (a, rowid) 99 ) 100 101 statement ok 102 SET default_int_size=8; SET serial_normalization='rowid'; 103 104 statement ok 105 CREATE TABLE i8_rowid (a SERIAL) 106 107 query TT 108 SHOW CREATE TABLE i8_rowid 109 ---- 110 i8_rowid CREATE TABLE i8_rowid ( 111 a INT8 NOT NULL DEFAULT unique_rowid(), 112 FAMILY "primary" (a, rowid) 113 ) 114 115 subtest serial_sql_sequence 116 # When using rowid, we should see an INTx that matches the current size setting. 117 118 statement ok 119 SET default_int_size=4; SET serial_normalization='sql_sequence'; 120 121 statement ok 122 CREATE TABLE i4_sql_sequence (a SERIAL) 123 124 query TT 125 SHOW CREATE TABLE i4_sql_sequence 126 ---- 127 i4_sql_sequence CREATE TABLE i4_sql_sequence ( 128 a INT4 NOT NULL DEFAULT nextval('i4_sql_sequence_a_seq':::STRING), 129 FAMILY "primary" (a, rowid) 130 ) 131 132 statement ok 133 SET default_int_size=8; SET serial_normalization='sql_sequence'; 134 135 statement ok 136 CREATE TABLE i8_sql_sequence (a SERIAL) 137 138 query TT 139 SHOW CREATE TABLE i8_sql_sequence 140 ---- 141 i8_sql_sequence CREATE TABLE i8_sql_sequence ( 142 a INT8 NOT NULL DEFAULT nextval('i8_sql_sequence_a_seq':::STRING), 143 FAMILY "primary" (a, rowid) 144 ) 145 146 subtest serial_virtual_sequence 147 # Virtual sequences are a wrapper around unique_rowid(), so they will also 148 # return an INT8 value. 149 150 statement ok 151 SET default_int_size=4; SET serial_normalization='virtual_sequence'; 152 153 statement ok 154 CREATE TABLE i4_virtual_sequence (a SERIAL) 155 156 query TT 157 SHOW CREATE TABLE i4_virtual_sequence 158 ---- 159 i4_virtual_sequence CREATE TABLE i4_virtual_sequence ( 160 a INT8 NOT NULL DEFAULT nextval('i4_virtual_sequence_a_seq':::STRING), 161 FAMILY "primary" (a, rowid) 162 ) 163 164 statement ok 165 SET default_int_size=8; SET serial_normalization='virtual_sequence'; 166 167 statement ok 168 CREATE TABLE i8_virtual_sequence (a SERIAL) 169 170 query TT 171 SHOW CREATE TABLE i8_virtual_sequence 172 ---- 173 i8_virtual_sequence CREATE TABLE i8_virtual_sequence ( 174 a INT8 NOT NULL DEFAULT nextval('i8_virtual_sequence_a_seq':::STRING), 175 FAMILY "primary" (a, rowid) 176 )