Client: Add PARALLEL and VOLATILE categories
I'm not 100% sure what's appropiate for plproxy functions so, for now, I've set them up as VOLATILE and PARALLEL UNSAFE
This commit is contained in:
@@ -8,6 +8,11 @@ SED = sed
|
|||||||
ERB = erb
|
ERB = erb
|
||||||
REPLACEMENTS = -i 's/$(EXTVERSION)/$(NEW_VERSION)/g'
|
REPLACEMENTS = -i 's/$(EXTVERSION)/$(NEW_VERSION)/g'
|
||||||
NEW_EXTENSION_ARTIFACT = $(EXTENSION)--$(EXTVERSION).sql
|
NEW_EXTENSION_ARTIFACT = $(EXTENSION)--$(EXTVERSION).sql
|
||||||
|
AWK = awk
|
||||||
|
|
||||||
|
# Parallel support macros
|
||||||
|
PG_CONFIG = pg_config
|
||||||
|
PG_PARALLEL := $(shell $(PG_CONFIG) --version | ($(AWK) '{$$2*=1000; if ($$2 >= 9600) print 1; else print 0;}' 2> /dev/null || echo 0))
|
||||||
|
|
||||||
# OLD_VERSIONS = $(wildcard old_versions/*.sql)
|
# OLD_VERSIONS = $(wildcard old_versions/*.sql)
|
||||||
# DATA = $(NEW_EXTENSION_ARTIFACT) \
|
# DATA = $(NEW_EXTENSION_ARTIFACT) \
|
||||||
@@ -50,6 +55,13 @@ SOURCES_DATA = $(wildcard $(SOURCES_DATA_DIR)/*.sql) $(GENERATED_SQL_FILES)
|
|||||||
$(NEW_EXTENSION_ARTIFACT): $(SOURCES_DATA)
|
$(NEW_EXTENSION_ARTIFACT): $(SOURCES_DATA)
|
||||||
rm -f $@
|
rm -f $@
|
||||||
cat $(SOURCES_DATA_DIR)/*.sql >> $@
|
cat $(SOURCES_DATA_DIR)/*.sql >> $@
|
||||||
|
ifeq ($(PG_PARALLEL), 0)
|
||||||
|
# Remove PARALLEL in aggregates and functions
|
||||||
|
$(eval TMPFILE := $(shell mktemp /tmp/$(basename $0).XXXXXXXX))
|
||||||
|
$(SED) -e 's/PARALLEL \= [A-Z]*,/''/g' \
|
||||||
|
-e 's/PARALLEL [A-Z]*/''/g' $@ > $(TMPFILE)
|
||||||
|
mv $(TMPFILE) $@
|
||||||
|
endif
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all: $(DATA)
|
all: $(DATA)
|
||||||
@@ -61,6 +73,13 @@ release: $(EXTENSION).control $(SOURCES_DATA)
|
|||||||
$(SED) $(REPLACEMENTS) $(EXTENSION).control
|
$(SED) $(REPLACEMENTS) $(EXTENSION).control
|
||||||
git add $(EXTENSION).control
|
git add $(EXTENSION).control
|
||||||
cat $(SOURCES_DATA_DIR)/*.sql > $(EXTENSION)--$(NEW_VERSION).sql
|
cat $(SOURCES_DATA_DIR)/*.sql > $(EXTENSION)--$(NEW_VERSION).sql
|
||||||
|
ifeq ($(PG_PARALLEL), 0)
|
||||||
|
# Remove PARALLEL in aggregates and functions
|
||||||
|
$(eval TMPFILE := $(shell mktemp /tmp/$(basename $0).XXXXXXXX))
|
||||||
|
$(SED) -e 's/PARALLEL \= [A-Z]*,/''/g' \
|
||||||
|
-e 's/PARALLEL [A-Z]*/''/g' $@ > $(TMPFILE)
|
||||||
|
mv $(TMPFILE) $@
|
||||||
|
endif
|
||||||
git add $(EXTENSION)--$(NEW_VERSION).sql
|
git add $(EXTENSION)--$(NEW_VERSION).sql
|
||||||
$(ERB) version=$(NEW_VERSION) upgrade_downgrade_template.erb > $(EXTENSION)--$(EXTVERSION)--$(NEW_VERSION).sql
|
$(ERB) version=$(NEW_VERSION) upgrade_downgrade_template.erb > $(EXTENSION)--$(EXTVERSION)--$(NEW_VERSION).sql
|
||||||
$(ERB) version=$(EXTVERSION) upgrade_downgrade_template.erb > $(EXTENSION)--$(NEW_VERSION)--$(EXTVERSION).sql
|
$(ERB) version=$(EXTVERSION) upgrade_downgrade_template.erb > $(EXTENSION)--$(NEW_VERSION)--$(EXTVERSION).sql
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ BEGIN
|
|||||||
SELECT trim(both '"' FROM db_connection_str) INTO db_connection_str;
|
SELECT trim(both '"' FROM db_connection_str) INTO db_connection_str;
|
||||||
RETURN db_connection_str;
|
RETURN db_connection_str;
|
||||||
END;
|
END;
|
||||||
$$ LANGUAGE 'plpgsql';
|
$$ LANGUAGE 'plpgsql' STABLE PARALLEL SAFE;
|
||||||
|
|||||||
@@ -34,4 +34,4 @@ BEGIN
|
|||||||
result.organization_name = organization_name;
|
result.organization_name = organization_name;
|
||||||
RETURN result;
|
RETURN result;
|
||||||
END;
|
END;
|
||||||
$$ LANGUAGE 'plpgsql' SECURITY DEFINER;
|
$$ LANGUAGE 'plpgsql' SECURITY DEFINER STABLE PARALLEL SAFE;
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ BEGIN
|
|||||||
|
|
||||||
RETURN result;
|
RETURN result;
|
||||||
END;
|
END;
|
||||||
$$ LANGUAGE 'plpgsql' SECURITY DEFINER;
|
$$ LANGUAGE 'plpgsql' SECURITY DEFINER VOLATILE PARALLEL UNSAFE;
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION cdb_dataservices_client._DST_PopulateTableOBS_GetMeasure(
|
CREATE OR REPLACE FUNCTION cdb_dataservices_client._DST_PopulateTableOBS_GetMeasure(
|
||||||
table_name text,
|
table_name text,
|
||||||
@@ -89,7 +89,7 @@ BEGIN
|
|||||||
|
|
||||||
RETURN result;
|
RETURN result;
|
||||||
END;
|
END;
|
||||||
$$ LANGUAGE 'plpgsql' SECURITY DEFINER;
|
$$ LANGUAGE 'plpgsql' SECURITY DEFINER VOLATILE PARALLEL UNSAFE;
|
||||||
|
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION cdb_dataservices_client.__DST_PrepareTableOBS_GetMeasure(
|
CREATE OR REPLACE FUNCTION cdb_dataservices_client.__DST_PrepareTableOBS_GetMeasure(
|
||||||
@@ -134,7 +134,7 @@ CREATE OR REPLACE FUNCTION cdb_dataservices_client.__DST_PrepareTableOBS_GetMeas
|
|||||||
)
|
)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
$$ LANGUAGE plpythonu;
|
$$ LANGUAGE plpythonu VOLATILE PARALLEL UNSAFE;
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION cdb_dataservices_client.__DST_PopulateTableOBS_GetMeasure(
|
CREATE OR REPLACE FUNCTION cdb_dataservices_client.__DST_PopulateTableOBS_GetMeasure(
|
||||||
username text,
|
username text,
|
||||||
@@ -227,7 +227,7 @@ CREATE OR REPLACE FUNCTION cdb_dataservices_client.__DST_PopulateTableOBS_GetMea
|
|||||||
fdw_server=plpy.quote_literal(server_name)))
|
fdw_server=plpy.quote_literal(server_name)))
|
||||||
|
|
||||||
return True
|
return True
|
||||||
$$ LANGUAGE plpythonu;
|
$$ LANGUAGE plpythonu VOLATILE PARALLEL UNSAFE;
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION cdb_dataservices_client._DST_ConnectUserTable(
|
CREATE OR REPLACE FUNCTION cdb_dataservices_client._DST_ConnectUserTable(
|
||||||
username text,
|
username text,
|
||||||
@@ -239,7 +239,7 @@ CREATE OR REPLACE FUNCTION cdb_dataservices_client._DST_ConnectUserTable(
|
|||||||
)RETURNS cdb_dataservices_client.ds_fdw_metadata AS $$
|
)RETURNS cdb_dataservices_client.ds_fdw_metadata AS $$
|
||||||
CONNECT cdb_dataservices_client._server_conn_str();
|
CONNECT cdb_dataservices_client._server_conn_str();
|
||||||
TARGET cdb_dataservices_server._DST_ConnectUserTable;
|
TARGET cdb_dataservices_server._DST_ConnectUserTable;
|
||||||
$$ LANGUAGE plproxy;
|
$$ LANGUAGE plproxy VOLATILE PARALLEL UNSAFE;
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION cdb_dataservices_client._DST_GetReturnMetadata(
|
CREATE OR REPLACE FUNCTION cdb_dataservices_client._DST_GetReturnMetadata(
|
||||||
username text,
|
username text,
|
||||||
@@ -249,7 +249,7 @@ CREATE OR REPLACE FUNCTION cdb_dataservices_client._DST_GetReturnMetadata(
|
|||||||
) RETURNS cdb_dataservices_client.ds_return_metadata AS $$
|
) RETURNS cdb_dataservices_client.ds_return_metadata AS $$
|
||||||
CONNECT cdb_dataservices_client._server_conn_str();
|
CONNECT cdb_dataservices_client._server_conn_str();
|
||||||
TARGET cdb_dataservices_server._DST_GetReturnMetadata;
|
TARGET cdb_dataservices_server._DST_GetReturnMetadata;
|
||||||
$$ LANGUAGE plproxy;
|
$$ LANGUAGE plproxy VOLATILE PARALLEL UNSAFE;
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION cdb_dataservices_client._DST_FetchJoinFdwTableData(
|
CREATE OR REPLACE FUNCTION cdb_dataservices_client._DST_FetchJoinFdwTableData(
|
||||||
username text,
|
username text,
|
||||||
@@ -261,7 +261,7 @@ CREATE OR REPLACE FUNCTION cdb_dataservices_client._DST_FetchJoinFdwTableData(
|
|||||||
) RETURNS SETOF record AS $$
|
) RETURNS SETOF record AS $$
|
||||||
CONNECT cdb_dataservices_client._server_conn_str();
|
CONNECT cdb_dataservices_client._server_conn_str();
|
||||||
TARGET cdb_dataservices_server._DST_FetchJoinFdwTableData;
|
TARGET cdb_dataservices_server._DST_FetchJoinFdwTableData;
|
||||||
$$ LANGUAGE plproxy;
|
$$ LANGUAGE plproxy VOLATILE PARALLEL UNSAFE;
|
||||||
|
|
||||||
CREATE OR REPLACE FUNCTION cdb_dataservices_client._DST_DisconnectUserTable(
|
CREATE OR REPLACE FUNCTION cdb_dataservices_client._DST_DisconnectUserTable(
|
||||||
username text,
|
username text,
|
||||||
@@ -272,4 +272,4 @@ CREATE OR REPLACE FUNCTION cdb_dataservices_client._DST_DisconnectUserTable(
|
|||||||
) RETURNS boolean AS $$
|
) RETURNS boolean AS $$
|
||||||
CONNECT cdb_dataservices_client._server_conn_str();
|
CONNECT cdb_dataservices_client._server_conn_str();
|
||||||
TARGET cdb_dataservices_server._DST_DisconnectUserTable;
|
TARGET cdb_dataservices_server._DST_DisconnectUserTable;
|
||||||
$$ LANGUAGE plproxy;
|
$$ LANGUAGE plproxy VOLATILE PARALLEL UNSAFE;
|
||||||
|
|||||||
@@ -51,4 +51,4 @@ BEGIN
|
|||||||
|
|
||||||
RETURN TRUE;
|
RETURN TRUE;
|
||||||
END;
|
END;
|
||||||
$$ LANGUAGE 'plpgsql';
|
$$ LANGUAGE 'plpgsql' VOLATILE PARALLEL UNSAFE;
|
||||||
|
|||||||
Reference in New Issue
Block a user