github.com/matrixorigin/matrixone@v0.7.0/test/distributed/cases/table/cluster_table/cluster_table.result (about) 1 drop database if exists test_db1; 2 create database test_db1; 3 use test_db1; 4 drop table if exists t1; 5 create cluster table t1(a int, b int); 6 internal error: do not have privilege to execute the statement 7 drop database test_db1; 8 use mo_task; 9 drop table if exists t2; 10 internal error: do not have privilege to execute the statement 11 create cluster table t2(a int, b int); 12 internal error: do not have privilege to execute the statement 13 use information_schema; 14 drop table if exists t3; 15 internal error: do not have privilege to execute the statement 16 create cluster table t3(a int, b int); 17 internal error: do not have privilege to execute the statement 18 desc t3; 19 no such table information_schema.t3 20 drop table t3; 21 internal error: do not have privilege to execute the statement 22 use mysql; 23 drop table if exists t4; 24 internal error: do not have privilege to execute the statement 25 create cluster table t4(a int, b int); 26 internal error: do not have privilege to execute the statement 27 desc t4; 28 no such table mysql.t4 29 drop table t4; 30 internal error: do not have privilege to execute the statement 31 use system_metrics; 32 drop table if exists t5; 33 internal error: do not have privilege to execute the statement 34 create cluster table t5(a int, b int); 35 internal error: do not have privilege to execute the statement 36 desc t5; 37 no such table system_metrics.t5 38 drop table t5; 39 internal error: do not have privilege to execute the statement 40 use system; 41 drop table if exists t6; 42 internal error: do not have privilege to execute the statement 43 create cluster table t6(a int, b int); 44 internal error: do not have privilege to execute the statement 45 desc t6; 46 no such table system.t6 47 drop table t6; 48 internal error: do not have privilege to execute the statement 49 use mo_catalog; 50 drop table if exists t7; 51 create cluster table t7(a int, b int); 52 desc t7; 53 Field Type Null Key Default Extra Comment 54 a INT YES NULL 55 b INT YES NULL 56 account_id INT UNSIGNED NO NULL the account_id added by the mo 57 drop table t7; 58 use mo_catalog; 59 drop table if exists cluster_table_1; 60 create cluster table cluster_table_1(a int, b int); 61 drop account if exists test_account1; 62 create account test_account1 admin_name = 'test_user' identified by '111'; 63 drop account if exists test_account2; 64 create account test_account2 admin_name = 'test_user' identified by '111'; 65 insert into cluster_table_1 accounts(sys,test_account1,test_account2) values(0,0),(1,1); 66 select a,b from cluster_table_1; 67 a b 68 0 0 69 1 1 70 0 0 71 1 1 72 0 0 73 1 1 74 use mo_catalog; 75 select * from cluster_table_1; 76 a b 77 0 0 78 1 1 79 use mo_catalog; 80 select * from cluster_table_1; 81 a b 82 0 0 83 1 1 84 insert into cluster_table_1 values(200,200); 85 insert into cluster_table_1 values(100,100); 86 insert into cluster_table_1 values(50,50); 87 select a,b from cluster_table_1; 88 a b 89 0 0 90 1 1 91 0 0 92 1 1 93 0 0 94 1 1 95 200 200 96 100 100 97 50 50 98 use mo_catalog; 99 select * from cluster_table_1; 100 a b 101 0 0 102 1 1 103 use mo_catalog; 104 select * from cluster_table_1; 105 a b 106 0 0 107 1 1 108 drop table cluster_table_1; 109 drop table if exists cluster_table_2; 110 create cluster table cluster_table_2( 111 col1 int, 112 col2 float, 113 col3 decimal, 114 col4 date, 115 col5 bool, 116 col6 json, 117 col7 blob, 118 col8 text, 119 col9 varchar 120 ); 121 load data infile '$resources/load_data/cluster_table.csv' into table cluster_table_2 accounts(sys,test_account1,test_account2); 122 select col1,col2,col3,col4,col5,col6,col7,col8,col9 from cluster_table_2; 123 col1 col2 col3 col4 col5 col6 col7 col8 col9 124 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 125 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 126 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 127 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 128 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 129 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 130 load data infile '$resources/load_data/cluster_table.csv' into table cluster_table_2; 131 select col1,col2,col3,col4,col5,col6,col7,col8,col9 from cluster_table_2; 132 col1 col2 col3 col4 col5 col6 col7 col8 col9 133 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 134 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 135 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 136 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 137 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 138 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 139 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 140 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 141 use mo_catalog; 142 select * from cluster_table_2; 143 col1 col2 col3 col4 col5 col6 col7 col8 col9 144 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 145 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 146 use mo_catalog; 147 select * from cluster_table_2; 148 col1 col2 col3 col4 col5 col6 col7 col8 col9 149 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 150 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 151 drop table cluster_table_2; 152 drop table if exists cluster_table_3; 153 create cluster table cluster_table_3( 154 col1 int, 155 col2 float, 156 col3 decimal, 157 col4 date, 158 col5 bool, 159 col6 json, 160 col7 blob, 161 col8 text, 162 col9 varchar 163 ); 164 insert into cluster_table_3 accounts(sys,test_account1,test_account2) values (1,1.09,1.345,"2022-10-02",0,'{"a":1}',"你好","text","varchar"); 165 insert into cluster_table_3 accounts(sys,test_account1,test_account2) values (2,10.9,13.45,"2022-10-02",1,'{"b":2}',"nihao","文本","字符"); 166 select col1,col2,col3,col4,col5,col6,col7,col8,col9 from cluster_table_3; 167 col1 col2 col3 col4 col5 col6 col7 col8 col9 168 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 169 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 170 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 171 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 172 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 173 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 174 update cluster_table_3 set col1=100 where account_id=0 and col1=1; 175 select col1,col2,col3,col4,col5,col6,col7,col8,col9 from cluster_table_3; 176 col1 col2 col3 col4 col5 col6 col7 col8 col9 177 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 178 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 179 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 180 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 181 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 182 100 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 183 use mo_catalog; 184 select * from cluster_table_3; 185 col1 col2 col3 col4 col5 col6 col7 col8 col9 186 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 187 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 188 use mo_catalog; 189 select * from cluster_table_3; 190 col1 col2 col3 col4 col5 col6 col7 col8 col9 191 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 192 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 193 update cluster_table_3 set col1=100 where account_id=(select account_id from mo_account where account_name="test_account1") and col1=1; 194 select col1,col2,col3,col4,col5,col6,col7,col8,col9 from cluster_table_3; 195 col1 col2 col3 col4 col5 col6 col7 col8 col9 196 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 197 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 198 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 199 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 200 100 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 201 100 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 202 use mo_catalog; 203 select * from cluster_table_3; 204 col1 col2 col3 col4 col5 col6 col7 col8 col9 205 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 206 100 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 207 use mo_catalog; 208 select * from cluster_table_3; 209 col1 col2 col3 col4 col5 col6 col7 col8 col9 210 1 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 211 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 212 update cluster_table_3 set col1=100 where account_id=(select account_id from mo_account where account_name="test_account2") and col1=1; 213 select col1,col2,col3,col4,col5,col6,col7,col8,col9 from cluster_table_3; 214 col1 col2 col3 col4 col5 col6 col7 col8 col9 215 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 216 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 217 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 218 100 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 219 100 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 220 100 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 221 use mo_catalog; 222 select * from cluster_table_3; 223 col1 col2 col3 col4 col5 col6 col7 col8 col9 224 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 225 100 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 226 use mo_catalog; 227 select * from cluster_table_3; 228 col1 col2 col3 col4 col5 col6 col7 col8 col9 229 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 230 100 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 231 delete from cluster_table_3 where account_id=0; 232 select col1,col2,col3,col4,col5,col6,col7,col8,col9 from cluster_table_3; 233 col1 col2 col3 col4 col5 col6 col7 col8 col9 234 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 235 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 236 100 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 237 100 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 238 use mo_catalog; 239 select * from cluster_table_3; 240 col1 col2 col3 col4 col5 col6 col7 col8 col9 241 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 242 100 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 243 use mo_catalog; 244 select * from cluster_table_3; 245 col1 col2 col3 col4 col5 col6 col7 col8 col9 246 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 247 100 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 248 delete from cluster_table_3 where account_id=(select account_id from mo_account where account_name="test_account1"); 249 select col1,col2,col3,col4,col5,col6,col7,col8,col9 from cluster_table_3; 250 col1 col2 col3 col4 col5 col6 col7 col8 col9 251 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 252 100 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 253 use mo_catalog; 254 select * from cluster_table_3; 255 col1 col2 col3 col4 col5 col6 col7 col8 col9 256 use mo_catalog; 257 select * from cluster_table_3; 258 col1 col2 col3 col4 col5 col6 col7 col8 col9 259 2 10.9 13 2022-10-02 true {"b": 2} nihao 文本 字符 260 100 1.09 1 2022-10-02 false {"a": 1} ä½ å¥½ text varchar 261 delete from cluster_table_3 where account_id=(select account_id from mo_account where account_name="test_account2"); 262 select col1,col2,col3,col4,col5,col6,col7,col8,col9 from cluster_table_3; 263 col1 col2 col3 col4 col5 col6 col7 col8 col9 264 use mo_catalog; 265 select * from cluster_table_3; 266 col1 col2 col3 col4 col5 col6 col7 col8 col9 267 use mo_catalog; 268 select * from cluster_table_3; 269 col1 col2 col3 col4 col5 col6 col7 col8 col9 270 truncate table cluster_table_3; 271 select col1,col2,col3,col4,col5,col6,col7,col8,col9 from cluster_table_3; 272 col1 col2 col3 col4 col5 col6 col7 col8 col9 273 use mo_catalog; 274 select * from cluster_table_3; 275 col1 col2 col3 col4 col5 col6 col7 col8 col9 276 use mo_catalog; 277 select * from cluster_table_3; 278 col1 col2 col3 col4 col5 col6 col7 col8 col9 279 drop table cluster_table_3; 280 create cluster table cluster_table_xx(account_id int); 281 invalid input: the attribute account_id in the cluster table can not be defined directly by the user 282 drop table if exists cluster_table_4; 283 create cluster table cluster_table_4( 284 col1 int, 285 col2 varchar 286 ); 287 insert into cluster_table_4 accounts(sys,test_account1,test_account2) values (1,'a'),(2,'b'); 288 select col1,col2 from cluster_table_4; 289 col1 col2 290 1 a 291 2 b 292 1 a 293 2 b 294 1 a 295 2 b 296 use mo_catalog; 297 desc cluster_table_4; 298 Field Type Null Key Default Extra Comment 299 show create table cluster_table_4; 300 Table Create Table 301 cluster_table_4 \n`col1` INT DEFAULT NULL,\n`col2` VARCHAR(65535) DEFAULT NULL\n) 302 drop table cluster_table_4; 303 internal error: do not have privilege to execute the statement 304 use mo_catalog; 305 insert into cluster_table_4 values (3, 'c'); 306 internal error: only the sys account can insert/update/delete the cluster table 307 update cluster_table_4 set col1=10 where col2='a'; 308 internal error: only the sys account can insert/update/delete the cluster table 309 delete from cluster_table_4 where col1=2; 310 internal error: only the sys account can insert/update/delete the cluster table 311 truncate table cluster_table_4; 312 internal error: only the sys account can truncate the cluster table 313 drop table cluster_table_4; 314 drop table if exists cluster_table_5; 315 create cluster table cluster_table_5( 316 col1 int, 317 col2 varchar 318 ); 319 insert into cluster_table_5 accounts(sys,test_account1,test_account2) values (1,'a'),(2,'b'),(3,'c'),(4,'d'),(5,'f'),(6,'g'); 320 drop table if exists cluster_table_6; 321 create cluster table cluster_table_6( 322 a int, 323 b varchar 324 ); 325 insert into cluster_table_6 accounts(sys,test_account1,test_account2) values (100,'a'),(200,'a'),(300,'a'); 326 select a1.col1,a1.col2,a2.a,a2.b from cluster_table_5 a1 left join cluster_table_6 a2 on a1.col2=a2.b; 327 col1 col2 a b 328 1 a 100 a 329 1 a 200 a 330 1 a 300 a 331 1 a 100 a 332 1 a 200 a 333 1 a 300 a 334 1 a 100 a 335 1 a 200 a 336 1 a 300 a 337 2 b null null 338 3 c null null 339 4 d null null 340 5 f null null 341 6 g null null 342 1 a 100 a 343 1 a 200 a 344 1 a 300 a 345 1 a 100 a 346 1 a 200 a 347 1 a 300 a 348 1 a 100 a 349 1 a 200 a 350 1 a 300 a 351 2 b null null 352 3 c null null 353 4 d null null 354 5 f null null 355 6 g null null 356 1 a 100 a 357 1 a 200 a 358 1 a 300 a 359 1 a 100 a 360 1 a 200 a 361 1 a 300 a 362 1 a 100 a 363 1 a 200 a 364 1 a 300 a 365 2 b null null 366 3 c null null 367 4 d null null 368 5 f null null 369 6 g null null 370 select a1.col1,a1.col2,a2.a,a2.b from cluster_table_5 a1 right join cluster_table_6 a2 on a1.col2=a2.b; 371 col1 col2 a b 372 1 a 100 a 373 1 a 100 a 374 1 a 100 a 375 1 a 200 a 376 1 a 200 a 377 1 a 200 a 378 1 a 300 a 379 1 a 300 a 380 1 a 300 a 381 1 a 100 a 382 1 a 100 a 383 1 a 100 a 384 1 a 200 a 385 1 a 200 a 386 1 a 200 a 387 1 a 300 a 388 1 a 300 a 389 1 a 300 a 390 1 a 100 a 391 1 a 100 a 392 1 a 100 a 393 1 a 200 a 394 1 a 200 a 395 1 a 200 a 396 1 a 300 a 397 1 a 300 a 398 1 a 300 a 399 select a1.col1,a1.col2,a2.a,a2.b from cluster_table_5 a1 inner join cluster_table_6 a2 on a1.col2=a2.b; 400 col1 col2 a b 401 1 a 100 a 402 1 a 200 a 403 1 a 300 a 404 1 a 100 a 405 1 a 200 a 406 1 a 300 a 407 1 a 100 a 408 1 a 200 a 409 1 a 300 a 410 1 a 100 a 411 1 a 200 a 412 1 a 300 a 413 1 a 100 a 414 1 a 200 a 415 1 a 300 a 416 1 a 100 a 417 1 a 200 a 418 1 a 300 a 419 1 a 100 a 420 1 a 200 a 421 1 a 300 a 422 1 a 100 a 423 1 a 200 a 424 1 a 300 a 425 1 a 100 a 426 1 a 200 a 427 1 a 300 a 428 select col1,col2 from cluster_table_5 union select a,b from cluster_table_6; 429 col1 col2 430 100 a 431 200 a 432 300 a 433 1 a 434 2 b 435 3 c 436 4 d 437 5 f 438 6 g 439 select col1,col2 from cluster_table_5 union all select a,b from cluster_table_6; 440 col1 col2 441 100 a 442 200 a 443 300 a 444 100 a 445 200 a 446 300 a 447 100 a 448 200 a 449 300 a 450 1 a 451 2 b 452 3 c 453 4 d 454 5 f 455 6 g 456 1 a 457 2 b 458 3 c 459 4 d 460 5 f 461 6 g 462 1 a 463 2 b 464 3 c 465 4 d 466 5 f 467 6 g 468 select col1,col2 from cluster_table_5 intersect select a,b from cluster_table_6; 469 col1 col2 470 SELECT col1,col2 FROM cluster_table_5 MINUS SELECT a,b FROM cluster_table_6; 471 col1 col2 472 1 a 473 2 b 474 3 c 475 4 d 476 5 f 477 6 g 478 SELECT a,b FROM cluster_table_6 MINUS SELECT col1,col2 FROM cluster_table_5; 479 a b 480 100 a 481 200 a 482 300 a 483 use mo_catalog; 484 select * from cluster_table_5 left join cluster_table_6 on cluster_table_5.col2=cluster_table_6.b; 485 col1 col2 a b 486 1 a 100 a 487 1 a 200 a 488 1 a 300 a 489 2 b null null 490 3 c null null 491 4 d null null 492 5 f null null 493 6 g null null 494 select * from cluster_table_5 right join cluster_table_6 on cluster_table_5.col2=cluster_table_6.b; 495 col1 col2 a b 496 1 a 100 a 497 1 a 200 a 498 1 a 300 a 499 select * from cluster_table_5 inner join cluster_table_6 on cluster_table_5.col2=cluster_table_6.b; 500 col1 col2 a b 501 1 a 100 a 502 1 a 200 a 503 1 a 300 a 504 select * from cluster_table_5 union select * from cluster_table_6; 505 col1 col2 506 100 a 507 200 a 508 300 a 509 1 a 510 2 b 511 3 c 512 4 d 513 5 f 514 6 g 515 select * from cluster_table_5 union all select * from cluster_table_6; 516 col1 col2 517 100 a 518 200 a 519 300 a 520 1 a 521 2 b 522 3 c 523 4 d 524 5 f 525 6 g 526 select * from cluster_table_5 intersect select * from cluster_table_6; 527 col1 col2 528 SELECT * FROM cluster_table_5 MINUS SELECT * FROM cluster_table_6; 529 col1 col2 530 1 a 531 2 b 532 3 c 533 4 d 534 5 f 535 6 g 536 SELECT * FROM cluster_table_6 MINUS SELECT * FROM cluster_table_5; 537 a b 538 100 a 539 200 a 540 300 a 541 use mo_catalog; 542 select * from cluster_table_5 left join cluster_table_6 on cluster_table_5.col2=cluster_table_6.b; 543 col1 col2 a b 544 1 a 100 a 545 1 a 200 a 546 1 a 300 a 547 2 b null null 548 3 c null null 549 4 d null null 550 5 f null null 551 6 g null null 552 select * from cluster_table_5 right join cluster_table_6 on cluster_table_5.col2=cluster_table_6.b; 553 col1 col2 a b 554 1 a 100 a 555 1 a 200 a 556 1 a 300 a 557 select * from cluster_table_5 inner join cluster_table_6 on cluster_table_5.col2=cluster_table_6.b; 558 col1 col2 a b 559 1 a 100 a 560 1 a 200 a 561 1 a 300 a 562 select * from cluster_table_5 union select * from cluster_table_6; 563 col1 col2 564 100 a 565 200 a 566 300 a 567 1 a 568 2 b 569 3 c 570 4 d 571 5 f 572 6 g 573 select * from cluster_table_5 union all select * from cluster_table_6; 574 col1 col2 575 100 a 576 200 a 577 300 a 578 1 a 579 2 b 580 3 c 581 4 d 582 5 f 583 6 g 584 select * from cluster_table_5 intersect select * from cluster_table_6; 585 col1 col2 586 SELECT * FROM cluster_table_5 MINUS SELECT * FROM cluster_table_6; 587 col1 col2 588 1 a 589 2 b 590 3 c 591 4 d 592 5 f 593 6 g 594 SELECT * FROM cluster_table_6 MINUS SELECT * FROM cluster_table_5; 595 a b 596 100 a 597 200 a 598 300 a 599 drop table cluster_table_5; 600 drop table cluster_table_6; 601 drop table if exists cluster_table_7; 602 create cluster table cluster_table_7( 603 col1 int, 604 col2 varchar 605 ); 606 insert into cluster_table_7 accounts(sys,test_account1,test_account2) values (1,'a'),(2,'b'); 607 select col1,col2 from cluster_table_7; 608 col1 col2 609 1 a 610 2 b 611 1 a 612 2 b 613 1 a 614 2 b 615 drop account test_account1; 616 select col1,col2 from cluster_table_7; 617 col1 col2 618 1 a 619 2 b 620 1 a 621 2 b 622 drop account test_account2; 623 select col1,col2 from cluster_table_7; 624 col1 col2 625 1 a 626 2 b 627 drop table cluster_table_7;