Re: [COMMITTERS] pgsql: Add transforms feature - Mailing list pgsql-hackers

From Michael Paquier
Subject Re: [COMMITTERS] pgsql: Add transforms feature
Date
Msg-id CAB7nPqQWw9iTwDii1qRzV4fx=OdKpfjkP+YADq9JAKemFB6MvQ@mail.gmail.com
Whole thread Raw
In response to Re: [COMMITTERS] pgsql: Add transforms feature  (Andrew Dunstan <andrew@dunslane.net>)
List pgsql-hackers
On Thu, Apr 30, 2015 at 3:30 AM, Andrew Dunstan <andrew@dunslane.net> wrote:
>
> On 04/28/2015 04:10 PM, Andrew Dunstan wrote:
>>
>>
>> On 04/28/2015 12:03 PM, Andrew Dunstan wrote:
>>>
>>>
>>> [switching to -hackers]
>>>
>>> On 04/28/2015 11:51 AM, Andrew Dunstan wrote:
>>>>
>>>>
>>>> On 04/28/2015 09:04 AM, Michael Paquier wrote:
>>>>>
>>>>> On Tue, Apr 28, 2015 at 10:01 AM, Michael Paquier
>>>>> <michael.paquier@gmail.com> wrote:
>>>>>>
>>>>>> On Tue, Apr 28, 2015 at 9:55 AM, Andrew Dunstan wrote:
>>>>>>>
>>>>>>> w.r.t MSVC builds, it looks like we need entries in
>>>>>>> $contrib_extraincludes
>>>>>>> in src/tools/msvc/Mkvcbuild.pm at the very least.
>>>>>>
>>>>>> If our goal is to put back to green the Windows nodes as quick as
>>>>>> possible, we could bypass their build this way , and we'll
>>>>>> additionally need to update the install script and
>>>>>> vcregress.pl/contribcheck to bypass those modules accordingly. Now I
>>>>>> don't think that we should make the things produced inconsistent.
>>>>>
>>>>> OK, attached are two patches to put back the buildfarm nodes using MSVC
>>>>> to green
>>>>> - 0001 adds support for build and installation of the new transform
>>>>> modules: hstore_plperl, hstore_plpython and  ltree_plpython. Note that
>>>>> this patch is enough to put back the buildfarm to a green state for
>>>>> MSVC, but it disables the regression tests for those modules,
>>>>> something addressed in the next patch...
>>>>> - 0002 adds support for regression tests for the new modules. The
>>>>> thing is that we need to check the major version version of Python
>>>>> available in configuration and choose what are the extensions to
>>>>> preload before the tests run. It is a little bit hacky... But it has
>>>>> the merit to work, and I am not sure we could have a cleaner solution
>>>>> by looking at the Makefiles of the transform modules that use
>>>>> currently conditions based on $(python_majorversion).
>>>>> Regards,
>>>>
>>>>
>>>>
>>>> I have pushed the first of these with some tweaks.
>>>>
>>>> I'm looking at the second.
>>>>
>>>>
>>>
>>>
>>> Regarding this second patch - apart from the buggy python version test
>>> which I just fixed in the first patch, I see this:
>>>
>>>    +       if ($pyver eq "2")
>>>    +       {
>>>    +           push @opts, "--load-extension=plpythonu";
>>>    +           push @opts, '--load-extension=' . $module . 'u';
>>>    +       }
>>>
>>>
>>> But what do we do for Python3?
>>>
>>> Do we actually have a Windows machine building with Python3?
>>
>>
>>
>> The answer seems to be "probably not". When I tried enabling this with
>> bowerbird I got a ton of errors like these:
>>
>>    plpy_cursorobject.obj : error LNK2001: unresolved external symbol
>>    PyObject_SelfIter [C:\prog\bf\root\HEAD\pgsql\plpython3.vcxproj]
>>    plpy_cursorobject.obj : error LNK2019: unresolved external symbol
>>    __imp_PyType_Ready referenced in function PLy_cursor_init_type
>>    [C:\prog\bf\root\HEAD\pgsql\plpython3.vcxproj]
>>
>>
>> Something else to fix I guess.
>>
>>
>
> OK, I fixed this as Michael suggested by installing the 64 bit python3 (it's
> a pity that python.org didn't offer that to me as a download on their front
> page - that's a bit ugly).
>
> However, when it came to running these tests that was a miserable failure.
> And indeed, we don't run any regression tests for plpython3 on MSVC.

I arrived to the same conclusion. Perhaps we shall write a TODO in the
code or on the wiki to not forget about that..

> So I committed this with just python2 tests enabled. All the buildfarm MSVC
> hosts seem to be using python2 anyway.

OK, thanks.

> Meanwhile, we have some work to do on the mingw/gcc side.
>
> These changes help make some progress - they let compilation succeed for
> hstore_plperl but I still get linkage failures. I suspect we need some
> things marked for export that we haven't to be marked needed before.
>
> [...]

I'll try to have a look at that a bit if possible...
Regards,
-- 
Michael



pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: alternative compression algorithms?
Next
From: Robert Haas
Date:
Subject: Re: patch for xidin