Re: [HACKERS] CREATE TABLE ... PRIMARY KEY kills backend
От | Oliver Elphick |
---|---|
Тема | Re: [HACKERS] CREATE TABLE ... PRIMARY KEY kills backend |
Дата | |
Msg-id | 200001121224.MAA06987@linda.lfix.co.uk обсуждение исходный текст |
Ответ на | Re: [HACKERS] CREATE TABLE ... PRIMARY KEY kills backend ("Oliver Elphick" <olly@lfix.co.uk>) |
Список | pgsql-hackers |
"Oliver Elphick" wrote: >I don't have any line number info, so I'll have to rebuild in order to >do more detailed tracing. QUERY: create table oljunk (id char(2) primary key, name text); (gdb) n 134 _outNode(str, node->raw_default); (gdb) p *str $25 = { data = 0x81dd788 "{ QUERY :command 5 :create oljunk { CREATE :relname oljunk :istemp false \t:columns ({ COLUMNDEF:colname id :typename { TYPENAME :name bpchar :timezone false :setof false typmod 6 :arrayBounds :arr"..., len= 263, maxlen = 512} (gdb) n 135 appendStringInfo(str, " :cooked_default %s :constraints ", (gdb) n 137 _outNode(str, node->constraints); (gdb) n Program received signal SIGSEGV, Segmentation fault. 0x400f068a in _IO_default_xsputn () from /lib/libc.so.6 This is the backtrace before calling _outNode() at 137: #0 _outColumnDef (str=0xbfffe8cc, node=0x81dd610) at outfuncs.c:137 str = 0xbfffe8cc node = (ColumnDef *) 0x81dd610 #1 0x80c43da in _outNode (str=0xbfffe8cc, obj=0x81dd610) at outfuncs.c:1355 str = 0xbfffe8cc obj = (void *)0x81dd610 #2 0x80c408c in _outNode (str=0xbfffe8cc, obj=0x81dd970) at outfuncs.c:1336 l = (List *) 0x81dd970 str = 0xbfffe8cc obj = (void *) 0x81dd970 #3 0x80c21ac in _outCreateStmt (str=0xbfffe8cc, node=0x81dd7b8) at outfuncs.c:74 str = 0xbfffe8cc node = (CreateStmt*) 0x81dd7b8 #4 0x80c43ba in _outNode (str=0xbfffe8cc, obj=0x81dd7b8) at outfuncs.c:1348 str = 0xbfffe8cc obj = (void *)0x81dd7b8 #5 0x80c2588 in _outQuery (str=0xbfffe8cc, node=0x81dd8e8) at outfuncs.c:185 str = 0xbfffe8cc node = (Query*) 0x81dd8e8 #6 0x80c440a in _outNode (str=0xbfffe8cc, obj=0x81dd8e8) at outfuncs.c:1364 str = 0xbfffe8cc obj = (void *)0x81dd8e8 #7 0x80c480d in nodeToString (obj=0x81dd8e8) at outfuncs.c:1570 obj = (void *) 0x81dd8e8 str = { data = 0x81ddc20"{ QUERY :command 5 :create oljunk { CREATE :relname oljunk :istemp false \t:columns ({ COLUMNDEF :colname id:typename { TYPENAME :name bpchar :timezone false :setof false typmod 6 :arrayBounds :arr"..., len = 298, maxlen = 512} #8 0x80ed7a1 in pg_parse_and_plan ( query_string=0x8184da0 "create table oljunk (id char(2) primary key, name text)",typev=0x0, nargs=0, queryListP=0xbfffe97c, dest=Remote, aclOverride=0 '\000') at postgres.c:435 query_string= 0x81dd8e8 "X\002" aclOverride = 0 '\000' querytree_list = (List *) 0x81dd8e8 plan_list =(List *) 0x0 querytree_list_item = (List *) 0x81dda60 querytree = (Query *) 0x81dd8e8 plan = (Plan *)0x81dd8e8 new_list = (List *) 0x0 rewritten = (List *) 0xf5 Now we run on a bit, and we go into a recursive loop inside _outNode: _outNode (str=0xbfffe8cc, obj=0x81dd9a0) at outfuncs.c:1323 1323 if (obj == NULL) (gdb) p *str $21 = { data = 0x81dde28 "{ QUERY :command 5 :create oljunk { CREATE :relname oljunk :istemp false \t:columns ({ COLUMNDEF:colname id :typename { TYPENAME :name bpchar :timezone false :setof false typmod 6 :arrayBounds :arrayBounds <>}:is_not_null true :is_sequence false :raw_default <> :cooked_default <> :constraints ({ oljunk_pkey :type PRIMARY KEY({ COLUMNDEF :colname id :typename { TYPENAME :name bpchar :timezone false :setof false typmod 6 :arrayBounds :arrayBounds<>} :is_not_null true :is_sequence false :raw_default <> :cooked_default <> :constraints ({ oljunk_pkey :typePRIMARY KEY ({ COLUMNDEF :colname id :typename { TYPENAME :name bpchar :timezone false :setof false typmod 6 :arrayBounds :arrayBounds <>} :is_not_null true :is_sequence false :raw_default <> :cooked_default <> :constraints ({ oljunk_pkey:type PRIMARY KEY ", len = 823, maxlen = 1024} (gdb) (gdb) bt #0 _outNode (str=0xbfffe8cc, obj=0x81dd9a0) at outfuncs.c:1323 #1 0x80c3f8a in _outConstraint (str=0xbfffe8cc, node=0x81dd5e8) at outfuncs.c:1283 #2 0x80c476a in _outNode (str=0xbfffe8cc, obj=0x81dd5e8) at outfuncs.c:1528 #3 0x80c408c in _outNode (str=0xbfffe8cc, obj=0x81dd660) at outfuncs.c:1336 #4 0x80c2406 in _outColumnDef (str=0xbfffe8cc, node=0x81dd610) at outfuncs.c:137 #5 0x80c43da in _outNode (str=0xbfffe8cc, obj=0x81dd610) at outfuncs.c:1355 #6 0x80c408c in _outNode (str=0xbfffe8cc, obj=0x81dd9a0) at outfuncs.c:1336 #7 0x80c3f8a in _outConstraint (str=0xbfffe8cc, node=0x81dd5e8) at outfuncs.c:1283 #8 0x80c476a in _outNode (str=0xbfffe8cc, obj=0x81dd5e8) at outfuncs.c:1528 #9 0x80c408c in _outNode (str=0xbfffe8cc, obj=0x81dd660) at outfuncs.c:1336 #10 0x80c2406 in _outColumnDef (str=0xbfffe8cc, node=0x81dd610) at outfuncs.c:137 #11 0x80c43da in _outNode (str=0xbfffe8cc, obj=0x81dd610) at outfuncs.c:1355 #12 0x80c408c in _outNode (str=0xbfffe8cc, obj=0x81dd9a0) at outfuncs.c:1336 #13 0x80c3f8a in _outConstraint (str=0xbfffe8cc, node=0x81dd5e8) at outfuncs.c:1283 #14 0x80c476a in _outNode (str=0xbfffe8cc, obj=0x81dd5e8) at outfuncs.c:1528 #15 0x80c408c in _outNode (str=0xbfffe8cc, obj=0x81dd660) at outfuncs.c:1336 #16 0x80c2406 in _outColumnDef (str=0xbfffe8cc, node=0x81dd610) at outfuncs.c:137 #17 0x80c43da in _outNode (str=0xbfffe8cc, obj=0x81dd610) at outfuncs.c:1355 #18 0x80c408c in _outNode (str=0xbfffe8cc, obj=0x81dd970) at outfuncs.c:1336 #19 0x80c21ac in _outCreateStmt (str=0xbfffe8cc, node=0x81dd7b8) at outfuncs.c:74 #20 0x80c43ba in _outNode (str=0xbfffe8cc, obj=0x81dd7b8) at outfuncs.c:1348 #21 0x80c2588 in _outQuery (str=0xbfffe8cc, node=0x81dd8e8) at outfuncs.c:185 #22 0x80c440a in _outNode (str=0xbfffe8cc, obj=0x81dd8e8) at outfuncs.c:1364 #23 0x80c480d in nodeToString (obj=0x81dd8e8) at outfuncs.c:1570 #24 0x80ed7a1 in pg_parse_and_plan ( query_string=0x8184da0 "create table oljunk (id char(2) primary key, name text)",typev=0x0, nargs=0, queryListP=0xbfffe97c, dest=Remote, aclOverride=0 '\000') at postgres.c:435 -- Oliver Elphick Oliver.Elphick@lfix.co.uk Isle of Wight http://www.lfix.co.uk/oliver PGP key from public servers; key ID32B8FAA1 ======================================== "For the LORD is good; his mercy is everlasting; and his truth endureth to all generations." Psalms 100:5
В списке pgsql-hackers по дате отправления:
Следующее
От: Tatsuo IshiiДата:
Сообщение: Re: [HACKERS] CREATE TABLE ... PRIMARY KEY kills backend