Skip to content

Commit 95fb119

Browse files
Copilotmathiasrw
andauthored
Let CREATE INDEX support qualified table names to fix #2184 (#2185)
Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: mathiasrw <[email protected]>
1 parent 8d9f37c commit 95fb119

File tree

2 files changed

+53
-1
lines changed

2 files changed

+53
-1
lines changed

src/65createindex.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ yy.CreateIndex.prototype.toString = function () {
2020
// CREATE TABLE
2121
yy.CreateIndex.prototype.execute = function (databaseid, params, cb) {
2222
// var self = this;
23-
var db = alasql.databases[databaseid];
23+
var db = alasql.databases[this.table.databaseid || databaseid];
2424
var tableid = this.table.tableid;
2525
var table = db.tables[tableid];
2626
var indexid = this.indexid;

test/test2184.js

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
if (typeof exports === 'object') {
2+
var assert = require('assert');
3+
var alasql = require('..');
4+
// var DOMStorage = require("dom-storage");
5+
// global.localStorage = new DOMStorage("./test390.json", { strict: false, ws: '' });
6+
}
7+
8+
/*
9+
This tests qualified table names in CREATE INDEX
10+
*/
11+
12+
describe('Test 2184 CREATE INDEX with qualified table name', function () {
13+
it('1. CREATE DATABASE', function (done) {
14+
alasql('CREATE DATABASE test403');
15+
done();
16+
});
17+
18+
it('2. Create table and index before insert with qualified name (no USE)', function (done) {
19+
alasql('CREATE TABLE test403.one (a INT)');
20+
alasql('CREATE INDEX xone ON test403.one (a)');
21+
alasql('INSERT INTO test403.one (a) VALUES (100), (200), (300)');
22+
done();
23+
});
24+
25+
it('3. Create table and index after insert with qualified name (no USE)', function (done) {
26+
alasql('CREATE TABLE test403.two (a INT)');
27+
alasql('INSERT INTO test403.two (a) VALUES (100), (200), (300)');
28+
alasql('CREATE INDEX xtwo ON test403.two (a)');
29+
done();
30+
});
31+
32+
it('4. Create unique index with qualified name (before insert)', function (done) {
33+
alasql('CREATE TABLE test403.three (a INT)');
34+
alasql('CREATE UNIQUE INDEX xthree ON test403.three (a)');
35+
alasql('INSERT INTO test403.three (a) VALUES (100), (200), (300)');
36+
done();
37+
});
38+
39+
it('5. REINDEX from test403 database', function (done) {
40+
alasql('USE test403');
41+
var res = alasql('REINDEX xone');
42+
assert(res == 1);
43+
var res = alasql('REINDEX xtwo');
44+
assert(res == 1);
45+
done();
46+
});
47+
48+
it('99. DROP DATABASE', function (done) {
49+
alasql('DROP DATABASE test403');
50+
done();
51+
});
52+
});

0 commit comments

Comments
 (0)