Re: [HACKERS] JIT compiling expressions/deform + inlining prototypev2.0
От | Konstantin Knizhnik |
---|---|
Тема | Re: [HACKERS] JIT compiling expressions/deform + inlining prototypev2.0 |
Дата | |
Msg-id | 1f91771b-4d1a-a985-91aa-880d79369258@postgrespro.ru обсуждение исходный текст |
Ответ на | [HACKERS] JIT compiling expressions/deform + inlining prototype v2.0 (Andres Freund <andres@anarazel.de>) |
Ответы |
Re: [HACKERS] JIT compiling expressions/deform + inlining prototypev2.0
|
Список | pgsql-hackers |
On 01.09.2017 09:41, Andres Freund wrote: > Hi, > > I previously had an early prototype of JITing [1] expression evaluation > and tuple deforming. I've since then worked a lot on this. > > Here's an initial, not really pretty but functional, submission. This > supports all types of expressions, and tuples, and allows, albeit with > some drawbacks, inlining of builtin functions. Between the version at > [1] and this I'd done some work in c++, because that allowed to > experiment more with llvm, but I've now translated everything back. > Some features I'd to re-implement due to limitations of C API. > > > I've whacked this around quite heavily today, this likely has some new > bugs, sorry for that :( Can you please clarify the following fragment calculating attributes alignment: /* compute what following columns are aligned to */ + if (att->attlen < 0) + { + /* can't guarantee any alignment after varlen field */ + attcuralign = -1; + } + else if (att->attnotnull && attcuralign >= 0) + { + Assert(att->attlen > 0); + attcuralign += att->attlen; + } + else if (att->attnotnull) + { + /* + * After a NOT NULL fixed-width column, alignment is + * guaranteed to be the minimum of the forced alignment and + * length. XXX + */ + attcuralign = alignto + att->attlen; + Assert(attcuralign > 0); + } + else + { + //elog(LOG, "attnotnullreset: %d", attnum); + attcuralign = -1; + } I wonder why in this branch (att->attnotnull && attcuralign >= 0) we are not adding "alignto" and comment in the following branch else if (att->attnotnull) seems to be not related to this branch, because in this case attcuralign is expected to be less then zero wjhich means that previous attribute is varlen field. -- Konstantin Knizhnik Postgres Professional: http://www.postgrespro.com The Russian Postgres Company
В списке pgsql-hackers по дате отправления: