Re: project updates - Mailing list pgsql-hackers

From Charles Cui
Subject Re: project updates
Date
Msg-id CA+SXE9vaUgtO2skQnKckaEgkPUjaZHLFkGYUt7FA1pxHsuiP8A@mail.gmail.com
Whole thread Raw
In response to Re: project updates  (Aleksander Alekseeev <a.alekseev@postgrespro.ru>)
Responses Re: project updates  (David Fetter <david@fetter.org>)
List pgsql-hackers


2018-07-20 2:18 GMT-07:00 Aleksander Alekseeev <a.alekseev@postgrespro.ru>:
Hello Charles,

>     Here is my current working status.
> 1. Complete the thrift_binary_in and thrift_binary_out functions, so
> that users can express their thrift struct using json. These two
> functions support both simple data struct and complex data structure
> like struct and map. 2. added test cases and document to cover
> thrift_binary_in and thrift_binary_out. 3. make the code compile-able
> from 9.4 to 11.0.

I see multiple warnings during compilation with 11.0, e.g:

```
pg_thrift.c:1120:72: warning: implicit declaration of function
‘JsonbGetDatum’; did you mean ‘JsonbPGetDatum’?
[-Wimplicit-function-declaration]

pg_thrift.c:1206:13: warning: the address of ‘is_big_endian’ will
always evaluate as ‘true’ [-Waddress]

pg_thrift.c:1227:18: warning: implicit declaration of function
‘PG_GETARG_JSONB’; did you mean ‘PG_GETARG_JSONB_P’?
[-Wimplicit-function-declaration]

pg_thrift.c:1227:18: warning: initialization of ‘Jsonb *’ {aka ‘struct
<anonymous> *’} from ‘int’ makes pointer from integer without a cast
[-Wint-conversion]
```

Also tests (make clean && make && make install && make installcheck)
don't pass.
I have tested compiled passed for 9.4, 9.5, 9.6, 10 and 11 (https://travis-ci.org/charles-cui/pg_thrift/builds/404741899
and make install && make installcheck passed for 9.4
The tests are not run for other versions because my mac is 9.4 postgresql. 
Also for CI testing, the current travis scripts has some problems for version other than 9.4. 
I will try to upgrade my postgresql and see whether I can make it. 

> One question though, for custom types, it seems rich operations are
> also very important besides storing and expressing using thrift type.
> What are the most important operators should I support? Any
> suggestions? Here is the updated repo
> https://github.com/charles-cui/pg_thrift

I believe get field / set field are most common ones. Naturally there
are also enumerations, projections, you name it. You can check out list
of operation supported by JSONB (or a list of operations on dict's in
Python) to get a full picture.

Good idea, thanks 

--
Best regards,
Aleksander Alekseev

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Non-portable shell code in pg_upgrade tap tests
Next
From: David Fetter
Date:
Subject: Re: project updates