diff --git a/system/dbupdate_3.4/27351_digitalisierung_formulare.php b/system/dbupdate_3.4/27351_digitalisierung_formulare.php
index 1f8dd4b4b..4bf52dc3a 100644
--- a/system/dbupdate_3.4/27351_digitalisierung_formulare.php
+++ b/system/dbupdate_3.4/27351_digitalisierung_formulare.php
@@ -170,9 +170,12 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht
}
}
-if (!$result = @$db->db_query("SELECT campus.get_status_studierendenantrag(0)")) {
+if (!$result = @$db->db_query("SELECT campus.get_status_studierendenantrag(0)"))
+{
$qry = 'CREATE FUNCTION campus.get_status_studierendenantrag(integer) RETURNS character varying
LANGUAGE plpgsql
+ STABLE
+ RETURNS NULL ON NULL INPUT
AS $_$
DECLARE i_studierendenantrag_id ALIAS FOR $1;
DECLARE rec RECORD;
@@ -194,10 +197,25 @@ if (!$result = @$db->db_query("SELECT campus.get_status_studierendenantrag(0)"))
else
echo '
campus.get_status_studierendenantrag(integer): function created';
}
+elseif ($result = @$db->db_query("SELECT 1 FROM pg_proc WHERE proname='get_status_studierendenantrag' AND provolatile='s'"))
+{
+ if ($db->db_num_rows($result) == 0) {
+ $qry = 'ALTER FUNCTION campus.get_status_studierendenantrag(integer) STABLE;';
+ $qry .= 'ALTER FUNCTION campus.get_status_studierendenantrag(integer) RETURNS NULL ON NULL INPUT;';
-if (!$result = @$db->db_query("SELECT campus.get_status_id_studierendenantrag(0)")) {
+ if(!$db->db_query($qry))
+ echo 'campus.get_status_studierendenantrag(integer): '.$db->db_last_error().'
';
+ else
+ echo '
campus.get_status_studierendenantrag(integer): function updated';
+ }
+}
+
+if (!$result = @$db->db_query("SELECT campus.get_status_id_studierendenantrag(0)"))
+{
$qry = 'CREATE FUNCTION campus.get_status_id_studierendenantrag(integer) RETURNS integer
LANGUAGE plpgsql
+ STABLE
+ RETURNS NULL ON NULL INPUT
AS $_$
DECLARE i_studierendenantrag_id ALIAS FOR $1;
DECLARE rec RECORD;
@@ -219,10 +237,24 @@ if (!$result = @$db->db_query("SELECT campus.get_status_id_studierendenantrag(0)
else
echo '
campus.get_status_id_studierendenantrag(integer): function created';
}
+elseif ($result = @$db->db_query("SELECT 1 FROM pg_proc WHERE proname='get_status_id_studierendenantrag' AND provolatile='s'"))
+{
+ if ($db->db_num_rows($result) == 0) {
+ $qry = 'ALTER FUNCTION campus.get_status_id_studierendenantrag(integer) STABLE;';
+ $qry .= 'ALTER FUNCTION campus.get_status_id_studierendenantrag(integer) RETURNS NULL ON NULL INPUT;';
-if (!$result = @$db->db_query("SELECT public.get_absem_prestudent(0, null)")) {
+ if(!$db->db_query($qry))
+ echo 'campus.get_status_id_studierendenantrag(integer): '.$db->db_last_error().'
';
+ else
+ echo '
campus.get_status_id_studierendenantrag(integer): function updated';
+ }
+}
+
+if (!$result = @$db->db_query("SELECT public.get_absem_prestudent(0, null)"))
+{
$qry = 'CREATE FUNCTION public.get_absem_prestudent(integer, character varying) RETURNS integer
LANGUAGE plpgsql
+ STABLE
AS $_$
DECLARE i_prestudent_id ALIAS FOR $1;
DECLARE cv_studiensemester_kurzbz ALIAS FOR $2;
@@ -253,9 +285,22 @@ if (!$result = @$db->db_query("SELECT public.get_absem_prestudent(0, null)")) {
else
echo '
public.get_absem_prestudent(integer, character varying): function created';
}
-if (!$result = @$db->db_query("SELECT public.get_stdsem_prestudent(0, null)")) {
+elseif ($result = @$db->db_query("SELECT 1 FROM pg_proc WHERE proname='get_absem_prestudent' AND provolatile='s'"))
+{
+ if ($db->db_num_rows($result) == 0) {
+ $qry = 'ALTER FUNCTION public.get_absem_prestudent(integer, character varying) STABLE;';
+
+ if(!$db->db_query($qry))
+ echo 'public.get_absem_prestudent(integer, character varying): '.$db->db_last_error().'
';
+ else
+ echo '
public.get_absem_prestudent(integer, character varying): function updated';
+ }
+}
+if (!$result = @$db->db_query("SELECT public.get_stdsem_prestudent(0, null)"))
+{
$qry = 'CREATE FUNCTION public.get_stdsem_prestudent(integer, character varying) RETURNS character varying
LANGUAGE plpgsql
+ STABLE
AS $_$
DECLARE i_prestudent_id ALIAS FOR $1;
DECLARE cv_studiensemester_kurzbz ALIAS FOR $2;
@@ -286,6 +331,17 @@ if (!$result = @$db->db_query("SELECT public.get_stdsem_prestudent(0, null)")) {
else
echo '
public.get_stdsem_prestudent(integer, character varying): function created';
}
+elseif ($result = @$db->db_query("SELECT 1 FROM pg_proc WHERE proname='get_stdsem_prestudent' AND provolatile='s'"))
+{
+ if ($db->db_num_rows($result) == 0) {
+ $qry = 'ALTER FUNCTION public.get_stdsem_prestudent(integer, character varying) STABLE;';
+
+ if(!$db->db_query($qry))
+ echo 'public.get_stdsem_prestudent(integer, character varying): '.$db->db_last_error().'
';
+ else
+ echo '
public.get_stdsem_prestudent(integer, character varying): function updated';
+ }
+}
if($result = @$db->db_query("SELECT 1 FROM public.tbl_status_grund WHERE statusgrund_kurzbz = 'abbrecherStgl';"))
{