I'm running postgreSQL 9.5 on Windows 10
I Tried to create an extension for plr

ERROR: incompatible library "C:/Program Files/PostgreSQL/9.5/lib/plr.dll": version mismatch
DETAIL: Server is version 9.5, library is version 9.4.
********** Error **********

ERROR: incompatible library "C:/Program Files/PostgreSQL/9.5/lib/plr.dll": version mismatch
SQL state: XX000
Detail: Server is version 9.5, library is version 9.4.

The problem seems to be that the last version of plr doesn't support postgres 9.5

Any suggestion?
This is listing 16.11

CREATE FUNCTION ch16.google_geocode(
param_addr text,
OUT address text, OUT lon numeric, OUT lat numeric
)
RETURNS record
AS
$$
from geopy.geocoders import GoogleV3
geoc = GoogleV3()
address,
(latitude,longitude) = geoc.geocode(param_addr)
return (address, longitude, latitude)
$$
LANGUAGE 'plpython3u';

If I try to geocode using

SELECT *
FROM ch16.google_geocode(
'1731 New Hampshire Avenue Northwest, Washington, DC 20010'
);

I get the error:

ERRORE: NameError: global name 'address' is not defined
CONTEXT: Traceback (most recent call last):
PL/Python function "google_geocode", line 4, in <module>
address,
funzione PL/Python "google_geocode"
********** Error **********

ERRORE: NameError: global name 'address' is not defined
SQL state: 38000
Context: Traceback (most recent call last):
PL/Python function "google_geocode", line 4, in <module>
address,
funzione PL/Python "google_geocode"

I suppose it should be:
[address,(latitude,longitude)] = geoc.geocode(param_addr)
I'm running PostgreSQL 9.5 on Windwos 10

This is the list 16.7


CREATE OR REPLACE FUNCTION ch16.write_bin_file(
param_bytes bytea,
param_filename text
)
RETURNS text AS
$$
f = open('C:/temp/' + param_filename, 'wb+') -- <co id="co_code_plpython_write_bin_file_1"/>
f.write(param_bytes) -- <co id="co_code_plpython_write_bin_file_2"/>
f.close()
return param_filename -- <co id="co_code_plpython_write_bin_file_3"/>
$$ LANGUAGE plpython3u IMMUTABLE;

I Get this error:

ERROR: could not compile PL/Python function "write_bin_file"
DETAIL: SyntaxError: invalid syntax (<string>, line 3)

********** Error **********

ERROR: could not compile PL/Python function "write_bin_file"
SQL state: 38000
Detail: SyntaxError: invalid syntax (<string>, line 3)
Whith the list:

CREATE INDEX idx_ch15_ma_roads_geom_rt_number
ON ch15.ma_roads
USING gist(geom,rt_number);


I get the following error:


ERROR: data type character varying has no default operator class for access method "gist"
HINT: You must specify an operator class for the index or define a default operator class for the data type.

********** Error **********

ERROR: data type character varying has no default operator class for access method "gist"
SQL state: 42704
Hint: You must specify an operator class for the index or define a default operator class for the data type.


I'm running postgresql 9.5
I've imported monthly precipitation into postgis following the book.
I have a table with 2700 rows (225 for 12 months from january to december).
So I have in my table 12 raster of precipitation for part of Europe.

Question 1
What data I see when I load the table in Qgis using dbmanager?
(What kind of interpolation Qgis does when I load the 2700 rows raster?)

Question 2
what is the correct way to handle these 12 raster stored in the same table of postgis?
Maybe I must create a 12 bands (1 for each month) raster?
I've imported monthly precipitation into postgis following the book.
I have a table with 2700 rows (225 for 12 months from january to december).
So I have in my table 12 raster of precipitation for part of Europe.

Question 1
What data I see when I load the table in Qgis using dbmanager?
(What kind of interpolation Qgis does when I load the 2700 rows raster?)

Question 2
what is the correct way to handle these 12 raster stored in the same table of postgis?
Maybe I must create a 12 bands (1 for each month) raster?