fixbug on multihash_copy_plan and some cleanup
Merge branch 'master' of github.com:kaigai/pg_strom
bugfix: again, gpuscan_try_replace_seqscan_plan pulls-up qualifier correctly.

Once plan is constructed, SeqScan node has node->qual in extracted form,
so no need to try to extract qualifier from RestrictInfo again.
revert commit 36c0005b61384e9fac3da994ba7992f61841f0b5
remove noisy message on gpupreagg
Merge branch 'master' of github.com:kaigai/pg_strom
add pg_strom.enabled_global for test/benchmark purpose
a cosmetic fix
bugfix: GpuPreAgg was incorrectly injected if Agg(AGG_SORTED) uses IndexOnlyScan

It was reported as incorrect group generation because Agg assumed
sorted input stream, but GpuPreAgg breaks this assumption.
This fix allows to treat three cases.
 1. Agg(AGG_HASHED or AGG_PLAIN) --> Inject GpuPreAgg simply
 2. Agg(AGG_SORTED) with Sort --> Inject GpuPreAgg below the Sort
 3. Agg(AGG_SORTED) without Sort --> Replace Agg strategy to AGG_HASHED
    and inject GpuPreAgg, if work_mem configuration allowed.
add numeric support

This commits adds numeric data-type support.
Because of its nature, GPU is not good at treating variable-length
data-type like numeric. So, we simplified numeric data-type in the
kernel space; to represent it using 64bit integer internally,
because most of expected use case shall not overflow the 64bit
integer even though it is very big company.
(On the other hands, it lacks accuracy in science area).
add pg_strom.debug_force_gpupreagg option, to enforce GpuPreAgg for debugging
add message if GpuPreAgg re-checks chunk by CPU.

Example)

postgres=# select key, avg(x) from tx group by key;
NOTICE:  GpuPreAgg: 1 chunks were re-checked by CPU
 key |                                              avg
-----+------------------------------------------------------------------------------------------------
 ddd |  38.7295488733798420
 bbb |  49.3370704539120370
 ccc |  44.2985584773123300
 aaa | 9090909090909090909090909090909090909091818181818181818181827272727272727272751.31100197322666
(4 rows)
fixbug: outer_quals were not evaluated if GpuPreAgg fallbacks to CPU mode.
bugfix: codegen.c generated multiple functions with same name

PostgreSQL allows function overload; a function with same name
but different argument types shall be considered as a different
function, but OpenCL (based on C99) does not allow overloading.
So, we need qualifiers of function name, if it may have multiple
variations.

It was reported by Anzai Naoya, at the bug #97
Merge branch 'master' of ../pg_strom