@@ -2443,7 +2443,7 @@ func TestAmbiguousColumnResolution(t *testing.T) {
24432443 require .Equal (expected , rs )
24442444}
24452445
2446- func TestDDL (t * testing.T ) {
2446+ func TestCreateTable (t * testing.T ) {
24472447 require := require .New (t )
24482448
24492449 e := newEngine (t )
@@ -2474,6 +2474,83 @@ func TestDDL(t *testing.T) {
24742474 }
24752475
24762476 require .Equal (s , testTable .Schema ())
2477+
2478+ testQuery (t , e ,
2479+ "CREATE TABLE t2 (a INTEGER NOT NULL PRIMARY KEY, " +
2480+ "b VARCHAR(10) NOT NULL)" ,
2481+ []sql.Row (nil ),
2482+ )
2483+
2484+ db , err = e .Catalog .Database ("mydb" )
2485+ require .NoError (err )
2486+
2487+ testTable , ok = db .Tables ()["t2" ]
2488+ require .True (ok )
2489+
2490+ s = sql.Schema {
2491+ {Name : "a" , Type : sql .Int32 , Nullable : false , PrimaryKey : true , Source : "t2" },
2492+ {Name : "b" , Type : sql .Text , Nullable : false , Source : "t2" },
2493+ }
2494+
2495+ require .Equal (s , testTable .Schema ())
2496+
2497+ testQuery (t , e ,
2498+ "CREATE TABLE t3(a INTEGER NOT NULL," +
2499+ "b TEXT NOT NULL," +
2500+ "c bool, primary key (a,b))" ,
2501+ []sql.Row (nil ),
2502+ )
2503+
2504+ db , err = e .Catalog .Database ("mydb" )
2505+ require .NoError (err )
2506+
2507+ testTable , ok = db .Tables ()["t3" ]
2508+ require .True (ok )
2509+
2510+ s = sql.Schema {
2511+ {Name : "a" , Type : sql .Int32 , Nullable : false , PrimaryKey : true , Source : "t3" },
2512+ {Name : "b" , Type : sql .Text , Nullable : false , PrimaryKey : true , Source : "t3" },
2513+ {Name : "c" , Type : sql .Uint8 , Nullable : true , Source : "t3" },
2514+ }
2515+
2516+ require .Equal (s , testTable .Schema ())
2517+ }
2518+
2519+ func TestDropTable (t * testing.T ) {
2520+ require := require .New (t )
2521+
2522+ e := newEngine (t )
2523+ db , err := e .Catalog .Database ("mydb" )
2524+ require .NoError (err )
2525+
2526+ _ , ok := db .Tables ()["mytable" ]
2527+ require .True (ok )
2528+
2529+ testQuery (t , e ,
2530+ "DROP TABLE IF EXISTS mytable, not_exist" ,
2531+ []sql.Row (nil ),
2532+ )
2533+
2534+ _ , ok = db .Tables ()["mytable" ]
2535+ require .False (ok )
2536+
2537+ _ , ok = db .Tables ()["othertable" ]
2538+ require .True (ok )
2539+ _ , ok = db .Tables ()["tabletest" ]
2540+ require .True (ok )
2541+
2542+ testQuery (t , e ,
2543+ "DROP TABLE IF EXISTS othertable, tabletest" ,
2544+ []sql.Row (nil ),
2545+ )
2546+
2547+ _ , ok = db .Tables ()["othertable" ]
2548+ require .False (ok )
2549+ _ , ok = db .Tables ()["tabletest" ]
2550+ require .False (ok )
2551+
2552+ _ , _ , err = e .Query (newCtx (), "DROP TABLE not_exist" )
2553+ require .Error (err )
24772554}
24782555
24792556func TestNaturalJoin (t * testing.T ) {
0 commit comments