Hibernate test org.hibernate.test.joinedsubclass.JoinedSubclassTest.testJoinedSubclass crashes the new optimizer.
Let me know if there's anything else you need.
I180627 14:36:53.589573 3555 sql/conn_executor.go:1050 [n1,client=127.0.0.1:59536,user=root] [Open pos:198] executing PrepareStmt: SELECT person0_.person_id AS person_i1_2_, person0_.version AS version2_2_, person0_.name AS name3_2_, person0_.sex AS sex4_2_, person0_.height_centimeters / 2.54E0 AS height_c5_2_, person0_.address AS address6_2_, person0_.zip AS zip7_2_, person0_.country AS country8_2_, person0_1_.title AS title2_0_, person0_1_.salary AS salary3_0_, person0_1_.pwd_expiry_weeks * 7.0E0 AS pwd_expi4_0_, person0_1_.manager AS manager5_0_, person0_2_.comments AS comments2_1_, person0_2_.salesperson AS salesper3_1_, CASE WHEN person0_1_.person_id IS NOT NULL THEN 1 WHEN person0_2_.person_id IS NOT NULL THEN 2 WHEN person0_.person_id IS NOT NULL THEN 0 END AS clazz_ FROM jperson AS person0_ LEFT JOIN jemployee AS person0_1_ ON person0_.person_id = person0_1_.person_id LEFT JOIN jmanager AS person0_2_ ON person0_.person_id = person0_2_.person_id WHERE person0_.zip = '30306'
I180627 14:36:53.590202 154 storage/replica_proposal.go:202 [n1,s1,r1092/1:/Table/110{7-8}] new range lease repl=(n1,s1):1 seq=7 start=1530110146.359716559,0 epo=6 pro=1530110213.588780787,0 following repl=(n1,s1):1 seq=6 start=1530031975.037054445,0 epo=5 pro=1530033413.067933499,0
I180627 14:36:53.590475 3555 sql/conn_executor.go:1050 [n1,client=127.0.0.1:59536,user=root] [Open pos:199] executing BindStmt: ""->""
I180627 14:36:53.590487 3555 sql/conn_executor.go:1050 [n1,client=127.0.0.1:59536,user=root] [Open pos:200] executing Describe: ""
I180627 14:36:53.590505 3555 sql/conn_executor.go:1050 [n1,client=127.0.0.1:59536,user=root] [Open pos:201] executing ExecPortal name: ""
I180627 14:36:53.590512 3555 sql/conn_executor.go:1093 [n1,client=127.0.0.1:59536,user=root] portal resolved to: SELECT person0_.person_id AS person_i1_2_, person0_.version AS version2_2_, person0_.name AS name3_2_, person0_.sex AS sex4_2_, person0_.height_centimeters / 2.54E0 AS height_c5_2_, person0_.address AS address6_2_, person0_.zip AS zip7_2_, person0_.country AS country8_2_, person0_1_.title AS title2_0_, person0_1_.salary AS salary3_0_, person0_1_.pwd_expiry_weeks * 7.0E0 AS pwd_expi4_0_, person0_1_.manager AS manager5_0_, person0_2_.comments AS comments2_1_, person0_2_.salesperson AS salesper3_1_, CASE WHEN person0_1_.person_id IS NOT NULL THEN 1 WHEN person0_2_.person_id IS NOT NULL THEN 2 WHEN person0_.person_id IS NOT NULL THEN 0 END AS clazz_ FROM jperson AS person0_ LEFT JOIN jemployee AS person0_1_ ON person0_.person_id = person0_1_.person_id LEFT JOIN jmanager AS person0_2_ ON person0_.person_id = person0_2_.person_id WHERE person0_.zip = '30306'
I180627 14:36:53.591571 3555 sql/conn_executor.go:1050 [n1,client=127.0.0.1:59536,user=root] [Open pos:202] executing Sync
I180627 14:36:53.608640 3555 sql/conn_executor.go:1050 [n1,client=127.0.0.1:59536,user=root] [Open pos:203] executing PrepareStmt: SELECT this_.person_id AS person_i1_2_0_, this_.version AS version2_2_0_, this_.name AS name3_2_0_, this_.sex AS sex4_2_0_, this_.height_centimeters / 2.54E0 AS height_c5_2_0_, this_.address AS address6_2_0_, this_.zip AS zip7_2_0_, this_.country AS country8_2_0_, this_1_.title AS title2_0_0_, this_1_.salary AS salary3_0_0_, this_1_.pwd_expiry_weeks * 7.0E0 AS pwd_expi4_0_0_, this_1_.manager AS manager5_0_0_, this_2_.comments AS comments2_1_0_, this_2_.salesperson AS salesper3_1_0_, CASE WHEN this_1_.person_id IS NOT NULL THEN 1 WHEN this_2_.person_id IS NOT NULL THEN 2 WHEN this_.person_id IS NOT NULL THEN 0 END AS clazz_0_ FROM jperson AS this_ LEFT JOIN jemployee AS this_1_ ON this_.person_id = this_1_.person_id LEFT JOIN jmanager AS this_2_ ON this_.person_id = this_2_.person_id WHERE (this_.address, this_.zip, this_.country) IN (($1, $2, $3), ($4, $5, $6))
E180627 14:36:53.609534 3555 sql/conn_executor.go:655 [n1,client=127.0.0.1:59536,user=root] a SQL panic has occurred while executing "SELECT this_.person_id AS person_i1_2_0_, this_.version AS version2_2_0_, this_.name AS name3_2_0_, this_.sex AS sex4_2_0_, this_.height_centimeters / 2.54E0 AS height_c5_2_0_, this_.address AS address6_2_0_, this_.zip AS zip7_2_0_, this_.country AS country8_2_0_, this_1_.title AS title2_0_0_, this_1_.salary AS salary3_0_0_, this_1_.pwd_expiry_weeks * 7.0E0 AS pwd_expi4_0_0_, this_1_.manager AS manager5_0_0_, this_2_.comments AS comments2_1_0_, this_2_.salesperson AS salesper3_1_0_, CASE WHEN th [...]": runtime error: index out of range
I180627 14:36:53.609560 3555 sql/conn_executor.go:675 [n1,client=127.0.0.1:59536,user=root] finishing connExecutor
E180627 14:36:53.609770 3555 util/log/crash_reporting.go:203 [n1,client=127.0.0.1:59536,user=root] a panic has occurred!
E180627 14:36:53.627041 3555 util/log/crash_reporting.go:477 [n1,client=127.0.0.1:59536,user=root] Reported as error 17d90a5dcb7d4679accb467cc6cabcaf
panic: runtime error: index out of range [recovered]
panic: runtime error: index out of range [recovered]
panic: panic while executing 1 statements: SELECT _._ AS _, _._ AS _, _._ AS _, _._ AS _, _._ / _ AS _, _._ AS _, _._ AS _, _._ AS _, _._ AS _, _._ AS _, _._ * _ AS _, _._ AS _, _._ AS _, _._ AS _, CASE WHEN _._ IS NOT _ THEN _ WHEN _._ IS NOT _ THEN _ WHEN _._ IS NOT _ THEN _ END AS _ FROM _ AS _ LEFT JOIN _ AS _ ON _._ = _._ LEFT JOIN _ AS _ ON _._ = _._ WHERE (_._, _._, _._) IN (($1, $2, $3), ($4, $5, $6)); caused by runtime error: index out of range
goroutine 3555 [running]:
github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).closeWrapper(0xc426024000, 0x66befa0, 0xc4259a5c40, 0x5ee1080, 0x79b41c0)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:669 +0x36f
github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn.func1(0xc426024000, 0x66befa0, 0xc4259a5c40)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:411 +0x61
panic(0x5ee1080, 0x79b41c0)
/Users/bram/go1.10/src/runtime/panic.go:502 +0x229
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).Build.func1(0xc425fceff8)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/builder.go:124 +0x99
panic(0x5ee1080, 0x79b41c0)
/Users/bram/go1.10/src/runtime/panic.go:502 +0x229
github.com/cockroachdb/cockroach/pkg/sql/opt/constraint.(*Columns).Init(...)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/constraint/columns.go:40
github.com/cockroachdb/cockroach/pkg/sql/opt/memo.(*constraintsBuilder).buildConstraintForTupleIn(0xc425fce738, 0xc426f9c120, 0xffff00370000001a, 0xc426f9c120, 0xffff002900000019)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/memo/constraint_builder.go:225 +0xd3f
github.com/cockroachdb/cockroach/pkg/sql/opt/memo.(*constraintsBuilder).buildConstraints(0xc425fce738, 0xc426f9c120, 0xffff00370000001a, 0xc426f9c120, 0xffff002d0000001a)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/memo/constraint_builder.go:408 +0x4d0
github.com/cockroachdb/cockroach/pkg/sql/opt/memo.(*constraintsBuilder).getConstraints(0xc425fce738, 0xc426f9c120, 0xffff00370000001a, 0xc426f9c120, 0xffff00370000001a)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/memo/constraint_builder.go:351 +0xac
github.com/cockroachdb/cockroach/pkg/sql/opt/memo.(*constraintsBuilder).buildConstraints(0xc425fce738, 0xc426f9c120, 0xffff002d0000001b, 0xc425105a40, 0x400b576)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/memo/constraint_builder.go:381 +0xef
github.com/cockroachdb/cockroach/pkg/sql/opt/memo.(*logicalPropsBuilder).buildScalarProps(0xc425fce878, 0xc426f9c120, 0xffff002d0000001b, 0xc426f9c120, 0xffff002d0000001b)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/memo/logical_props_builder.go:933 +0x24e
github.com/cockroachdb/cockroach/pkg/sql/opt/memo.(*logicalPropsBuilder).buildProps(0xc425fce878, 0xc426f9c120, 0xffff002d0000001b, 0xffff002d0000001b, 0x20)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/memo/logical_props_builder.go:48 +0xbe
github.com/cockroachdb/cockroach/pkg/sql/opt/memo.(*Memo).MemoizeNormExpr(0xc426f9c120, 0xc4260244c0, 0xe0000002d, 0x1, 0x5cd38f0)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/memo/memo.go:275 +0x2e3
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).onConstruct(0xc426c42360, 0xe0000002d, 0x1, 0x7a519a0)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.go:158 +0x45
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructFilters(0xc426c42360, 0x10000000e, 0x1)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:4117 +0x959
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildFrom(0xc427a72690, 0xc426c36120, 0xc4296cd380, 0xc4261ce0c0, 0xd0891e0)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:356 +0x511
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildSelectClause(0xc427a72690, 0xc42892d050, 0x0, 0x0, 0x0, 0xc4261ce0c0, 0xc4261cc101)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:275 +0x53
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildSelect(0xc427a72690, 0xc428925540, 0xc4261ce0c0, 0xc427a72690)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/select.go:233 +0x19e
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).buildStmt(0xc427a72690, 0x66c1820, 0xc428925540, 0xc4261ce0c0, 0x1)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/builder.go:172 +0xf4
github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder.(*Builder).Build(0xc427a72690, 0xc400000000, 0x0, 0x0, 0x0)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/optbuilder/builder.go:129 +0xab
github.com/cockroachdb/cockroach/pkg/sql.(*planner).makeOptimizerPlan(0xc426024430, 0x66bf060, 0xc426775e90, 0x66c1820, 0xc428925540, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/plan.go:365 +0x24e
github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).prepare.func1(0xc426024000, 0x66bf060, 0xc426775e90, 0xc4261ca000, 0xc426c36000, 0xc426c42090, 0x66c1820, 0xc428925540, 0x0, 0x0, ...)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/conn_executor_prepare.go:213 +0x5f9
github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).prepare(0xc426024000, 0x66bf060, 0xc426775e90, 0x66c1820, 0xc428925540, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/conn_executor_prepare.go:239 +0x310
github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).addPreparedStmt(0xc426024000, 0x66bf060, 0xc426775e90, 0xc427e936c2, 0x0, 0x66c1820, 0xc428925540, 0x0, 0x0, 0x0, ...)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/conn_executor_prepare.go:123 +0xe1
github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).execPrepare(0xc426024000, 0x66bf060, 0xc426775e90, 0xc427e936c2, 0x0, 0x66c1820, 0xc428925540, 0xc426c36000, 0xc4278853e0, 0x6, ...)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/conn_executor_prepare.go:56 +0x15e
github.com/cockroachdb/cockroach/pkg/sql.(*connExecutor).run(0xc426024000, 0x66befa0, 0xc4259a5c40, 0xc4294dea30, 0x0, 0x0)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:1138 +0x2a15
github.com/cockroachdb/cockroach/pkg/sql.(*Server).ServeConn(0xc420a5b600, 0x66befa0, 0xc4259a5c40, 0xc42a615017, 0x12, 0xc42a615009, 0x4, 0x0, 0x0, 0x66a3be0, ...)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/conn_executor.go:413 +0x1bb
github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*conn).serveImpl.func3(0xc420a5b600, 0x66befa0, 0xc4259a5c40, 0xc425dc8000, 0x5400, 0x15000, 0xc420757800, 0xc4294dea30, 0xc4294dea20, 0xc426bee1a0, ...)
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/pgwire/conn.go:267 +0x122
created by github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*conn).serveImpl
/Users/bram/go/src/github.com/cockroachdb/cockroach/pkg/sql/pgwire/conn.go:266 +0xf27
Hibernate test org.hibernate.test.joinedsubclass.JoinedSubclassTest.testJoinedSubclass crashes the new optimizer.
Here's the relevant logs with
--vmodule=conn_executor=2enabled.Let me know if there's anything else you need.
It looks like the query is
And the tables are
cc: @awoods187