Description
Please answer these questions before submitting your issue. Thanks!
- What version of Go are you using (
go version
)?
1.5.1 - What operating system and processor architecture are you using (
go env
)?
Linux - What did you do?
Run SQL:
CREATE TABLE b (id INTEGER NOT NULL AUTO_INCREMENT, PRIMARY KEY (id))ENGINE=MyISAM;
CREATE TABLE a (
id INTEGER NOT NULL AUTO_INCREMENT,
bid INTEGER,
type VARCHAR(30),
PRIMARY KEY (id),
FOREIGN KEY(bid) REFERENCES b (id)
)ENGINE=MyISAM;
CREATE TABLE asub (
id INTEGER NOT NULL,
data VARCHAR(30),
PRIMARY KEY (id),
FOREIGN KEY(id) REFERENCES a (id)
)ENGINE=MyISAM;
INSERT INTO asub (id, data) VALUES
(1, 'a1'),
(2, 'a2'),
(3, 'a3');
INSERT INTO b () VALUES ();
INSERT INTO a (bid, type) VALUES (1, 'asub');
SELECT anon_1.a_id AS anon_1_a_id, anon_1.a_bid AS anon_1_a_bid, anon_1.a_type AS anon_1_a_type, anon_1.asub_id AS anon_1_asub_id, anon_1.asub_data AS anon_1_asub_data, anon_2.b_id AS anon_2_b_id FROM (SELECT b.id AS b_id FROM b) AS anon_2 INNER JOIN (SELECT a.id AS a_id, a.bid AS a_bid, a.type AS a_type, asub.id AS asub_id, asub.data AS asub_data FROM a LEFT OUTER JOIN asub ON a.id = asub.id) AS anon_1 ON anon_2.b_id = anon_1.a_bid ORDER BY anon_2.b_id;
- What did you expect to see?
Run SQL successfully. - What did you see instead?
2016/03/31 14:13:54 tidb.go:129: �[0;36m[debug] compiling SELECT anon_1.a_id AS anon_1_a_id, anon_1.a_bid AS anon_1_a_bid, anon_1.a_type AS anon_1_a_type, anon_1.asub_id AS anon_1_asub_id, anon_1.asub_data AS anon_1_asub_data, anon_2.b_id AS anon_2_b_id
FROM (SELECT b.id AS b_id
FROM b) AS anon_2 INNER JOIN (SELECT a.id AS a_id, a.bid AS a_bid, a.type AS a_type, asub.id AS asub_id, asub.data AS asub_data
FROM a LEFT OUTER JOIN asub ON a.id = asub.id) AS anon_1 ON anon_2.b_id = anon_1.a_bid ORDER BY anon_2.b_id �[0m
2016/03/31 14:13:54 conn.go:222: �[0;31m[error] lastCmd SELECT anon_1.a_id AS anon_1_a_id, anon_1.a_bid AS anon_1_a_bid, anon_1.a_type AS anon_1_a_type, anon_1.asub_id AS anon_1_asub_id, anon_1.asub_data AS anon_1_asub_data, anon_2.b_id AS anon_2_b_id
FROM (SELECT b.id AS b_id
FROM b) AS anon_2 INNER JOIN (SELECT a.id AS a_id, a.bid AS a_bid, a.type AS a_type, asub.id AS asub_id, asub.data AS asub_data
FROM a LEFT OUTER JOIN asub ON a.id = asub.id) AS anon_1 ON anon_2.b_id = anon_1.a_bid ORDER BY anon_2.b_id, runtime error: invalid memory address or nil pointer dereference, goroutine 1071 [running]:
github.com/pingcap/tidb/tidb-server/server.(_clientConn).Run.func1(0xc8200ee790)
/home/shenli/go/src/github.com/pingcap/tidb/tidb-server/server/conn.go:221 +0xb5
github.com/pingcap/tidb/optimizer/plan.(_joinPath).attachEqualCond(0x0, 0xc820dbde00, 0xc82077d8d0, 0x1, 0x1, 0x0)
/home/shenli/go/src/github.com/pingcap/tidb/optimizer/plan/planbuilder_join.go:241 +0x47
github.com/pingcap/tidb/optimizer/plan.(_joinPath).attachEqualCond(0xc8206fc620, 0xc820dbde00, 0xc82077d8d0, 0x1, 0x1, 0x1)
/home/shenli/go/src/github.com/pingcap/tidb/optimizer/plan/planbuilder_join.go:276 +0x441
github.com/pingcap/tidb/optimizer/plan.(_joinPath).reattach(0xc8206fc7e0, 0xc820bb0300, 0xc82077d8d0, 0x1, 0x1)
/home/shenli/go/src/github.com/pingcap/tidb/optimizer/plan/planbuilder_join.go:488 +0x3f4
github.com/pingcap/tidb/optimizer/plan.(_joinPath).optimizeJoinOrder(0xc8206fc7e0, 0xc82077d8d0, 0x1, 0x1)
/home/shenli/go/src/github.com/pingcap/tidb/optimizer/plan/planbuilder_join.go:459 +0x51d
github.com/pingcap/tidb/optimizer/plan.(_planBuilder).buildJoin(0xc820c75c40, 0xc820294280, 0x0, 0x0)
/home/shenli/go/src/github.com/pingcap/tidb/optimizer/plan/planbuilder_join.go:610 +0x498
github.com/pingcap/tidb/optimizer/plan.(_planBuilder).buildFrom(0xc820c75c40, 0xc820294280, 0x0, 0x0)
/home/shenli/go/src/github.com/pingcap/tidb/optimizer/plan/planbuilder.go:274 +0x70
github.com/pingcap/tidb/optimizer/plan.(_planBuilder).buildSelect(0xc820c75c40, 0xc820294280, 0x0, 0x0)
/home/shenli/go/src/github.com/pingcap/tidb/optimizer/plan/planbuilder.go:216 +0x150
github.com/pingcap/tidb/optimizer/plan.(_planBuilder).build(0xc820c75c40, 0x7f7ffc2748e8, 0xc820294280, 0x0, 0x0)
/home/shenli/go/src/github.com/pingcap/tidb/optimizer/plan/planbuilder.go:87 +0x824
github.com/pingcap/tidb/optimizer/plan.BuildPlan(0x7f7ffc2748e8, 0xc820294280, 0x7f7ffc2744b0, 0xc820853500, 0x0, 0x0, 0x0, 0x0)
/home/shenli/go/src/github.com/pingcap/tidb/optimizer/plan/planbuilder.go:43 +0xd4
github.com/pingcap/tidb/optimizer.Optimize(0x7f7ffcab94a8, 0xc821456080, 0x7f7ffc2748e8, 0xc820294280, 0x7f7ffc2744b0, 0xc820853500, 0x0, 0x0, 0x0, 0x0)
/home/shenli/go/src/github.com/pingcap/tidb/optimizer/optimizer.go:36 +0x184
github.com/pingcap/tidb/executor.(_Compiler).Compile(0xc8203a38e0, 0x7f7ffcab94a8, 0xc821456080, 0x7f7ffc2748a8, 0xc820294280, 0x0, 0x0, 0x0, 0x0)
/home/shenli/go/src/github.com/pingcap/tidb/executor/compiler.go:46 +0x370
github.com/pingcap/tidb.Compile(0x7f7ffcab94a8, 0xc821456080, 0x7f7ffc2748a8, 0xc820294280, 0x0, 0x0, 0x0, 0x0)
/home/shenli/go/src/github.com/pingcap/tidb/tidb.go:142 +0x79
github.com/pingcap/tidb.(_session).Execute(0xc821456080, 0xc820dce001, 0x1cc, 0x0, 0x0, 0x0, 0x0, 0x0)
/home/shenli/go/src/github.com/pingcap/tidb/session.go:372 +0x22d
github.com/pingcap/tidb/tidb-server/server.(_TiDBContext).Execute(0xc8202823f0, 0xc820dce001, 0x1cc, 0x0, 0x0, 0x0, 0x0)
/home/shenli/go/src/github.com/pingcap/tidb/tidb-server/server/driver_tidb.go:157 +0x83
github.com/pingcap/tidb/tidb-server/server.(_clientConn).handleQuery(0xc8200ee790, 0xc820dce001, 0x1cc, 0x0, 0x0)
/home/shenli/go/src/github.com/pingcap/tidb/tidb-server/server/conn.go:366 +0x6d
github.com/pingcap/tidb/tidb-server/server.(_clientConn).dispatch(0xc8200ee790, 0xc820dce001, 0x1cc, 0x1cc, 0x0, 0x0)
/home/shenli/go/src/github.com/pingcap/tidb/tidb-server/server/conn.go:265 +0x748
github.com/pingcap/tidb/tidb-server/server.(_clientConn).Run(0xc8200ee790)
/home/shenli/go/src/github.com/pingcap/tidb/tidb-server/server/conn.go:237 +0x238
github.com/pingcap/tidb/tidb-server/server.(_Server).onConn(0xc82010a680, 0x7f7ffd3392b0, 0xc820ce17c0)
/home/shenli/go/src/github.com/pingcap/tidb/tidb-server/server/server.go:163 +0x39a
created by github.com/pingcap/tidb/tidb-server/server.(*Server).Run
/home/shenli/go/src/github.com/pingcap/tidb/tidb-server/server/server.go:129 +0x203