Fix SQLs generated for pgAgent related nodes which were causing issues after psycopg3 changes. #5011
parent
50391ae3fd
commit
21cbc6e9e5
|
@ -215,7 +215,7 @@ class JobScheduleView(PGChildNodeView):
|
|||
"""
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
jid=jid
|
||||
jid=jid, conn=self.conn
|
||||
)
|
||||
status, res = self.conn.execute_dict(sql)
|
||||
|
||||
|
@ -242,7 +242,8 @@ class JobScheduleView(PGChildNodeView):
|
|||
sql = render_template(
|
||||
"/".join([self.template_path, self._NODES_SQL]),
|
||||
jscid=jscid,
|
||||
jid=jid
|
||||
jid=jid,
|
||||
conn=self.conn
|
||||
)
|
||||
|
||||
status, result = self.conn.execute_2darray(sql)
|
||||
|
@ -298,7 +299,7 @@ class JobScheduleView(PGChildNodeView):
|
|||
"""
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
jscid=jscid, jid=jid
|
||||
jscid=jscid, jid=jid, conn=self.conn
|
||||
)
|
||||
status, res = self.conn.execute_dict(sql)
|
||||
|
||||
|
@ -349,7 +350,8 @@ class JobScheduleView(PGChildNodeView):
|
|||
"/".join([self.template_path, self._CREATE_SQL]),
|
||||
jid=jid,
|
||||
data=data,
|
||||
fetch_id=True
|
||||
fetch_id=True,
|
||||
conn=self.conn
|
||||
)
|
||||
|
||||
status, res = self.conn.execute_void('BEGIN')
|
||||
|
@ -366,7 +368,8 @@ class JobScheduleView(PGChildNodeView):
|
|||
sql = render_template(
|
||||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
jscid=res,
|
||||
jid=jid
|
||||
jid=jid,
|
||||
conn=self.conn
|
||||
)
|
||||
status, res = self.conn.execute_2darray(sql)
|
||||
|
||||
|
@ -419,7 +422,8 @@ class JobScheduleView(PGChildNodeView):
|
|||
"/".join([self.template_path, self._UPDATE_SQL]),
|
||||
jid=jid,
|
||||
jscid=jscid,
|
||||
data=data
|
||||
data=data,
|
||||
conn=self.conn
|
||||
)
|
||||
|
||||
status, res = self.conn.execute_void(sql)
|
||||
|
@ -430,7 +434,8 @@ class JobScheduleView(PGChildNodeView):
|
|||
sql = render_template(
|
||||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
jscid=jscid,
|
||||
jid=jid
|
||||
jid=jid,
|
||||
conn=self.conn
|
||||
)
|
||||
status, res = self.conn.execute_2darray(sql)
|
||||
|
||||
|
@ -504,14 +509,16 @@ class JobScheduleView(PGChildNodeView):
|
|||
"/".join([self.template_path, self._CREATE_SQL]),
|
||||
jid=jid,
|
||||
data=data,
|
||||
fetch_id=False
|
||||
fetch_id=False,
|
||||
conn=self.conn
|
||||
)
|
||||
else:
|
||||
sql = render_template(
|
||||
"/".join([self.template_path, self._UPDATE_SQL]),
|
||||
jid=jid,
|
||||
jscid=jscid,
|
||||
data=data
|
||||
data=data,
|
||||
conn=self.conn
|
||||
)
|
||||
|
||||
return make_json_response(
|
||||
|
|
|
@ -229,7 +229,8 @@ SELECT EXISTS(
|
|||
sql = render_template(
|
||||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
jid=jid,
|
||||
has_connstr=self.manager.db_info['pgAgent']['has_connstr']
|
||||
has_connstr=self.manager.db_info['pgAgent']['has_connstr'],
|
||||
conn=self.conn
|
||||
)
|
||||
status, res = self.conn.execute_dict(sql)
|
||||
|
||||
|
@ -257,7 +258,8 @@ SELECT EXISTS(
|
|||
sql = render_template(
|
||||
"/".join([self.template_path, self._NODES_SQL]),
|
||||
jstid=jstid,
|
||||
jid=jid
|
||||
jid=jid,
|
||||
conn=self.conn
|
||||
)
|
||||
|
||||
status, result = self.conn.execute_2darray(sql)
|
||||
|
@ -315,7 +317,8 @@ SELECT EXISTS(
|
|||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
jstid=jstid,
|
||||
jid=jid,
|
||||
has_connstr=self.manager.db_info['pgAgent']['has_connstr']
|
||||
has_connstr=self.manager.db_info['pgAgent']['has_connstr'],
|
||||
conn=self.conn
|
||||
)
|
||||
status, res = self.conn.execute_dict(sql)
|
||||
|
||||
|
@ -356,7 +359,8 @@ SELECT EXISTS(
|
|||
"/".join([self.template_path, self._CREATE_SQL]),
|
||||
jid=jid,
|
||||
data=data,
|
||||
has_connstr=self.manager.db_info['pgAgent']['has_connstr']
|
||||
has_connstr=self.manager.db_info['pgAgent']['has_connstr'],
|
||||
conn=self.conn
|
||||
)
|
||||
|
||||
status, res = self.conn.execute_scalar(sql)
|
||||
|
@ -367,7 +371,8 @@ SELECT EXISTS(
|
|||
sql = render_template(
|
||||
"/".join([self.template_path, self._NODES_SQL]),
|
||||
jstid=res,
|
||||
jid=jid
|
||||
jid=jid,
|
||||
conn=self.conn
|
||||
)
|
||||
status, res = self.conn.execute_2darray(sql)
|
||||
|
||||
|
@ -415,7 +420,8 @@ SELECT EXISTS(
|
|||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
jstid=jstid,
|
||||
jid=jid,
|
||||
has_connstr=self.manager.db_info['pgAgent']['has_connstr']
|
||||
has_connstr=self.manager.db_info['pgAgent']['has_connstr'],
|
||||
conn=self.conn
|
||||
)
|
||||
status, res = self.conn.execute_dict(sql)
|
||||
|
||||
|
@ -439,7 +445,8 @@ SELECT EXISTS(
|
|||
jid=jid,
|
||||
jstid=jstid,
|
||||
data=data,
|
||||
has_connstr=self.manager.db_info['pgAgent']['has_connstr']
|
||||
has_connstr=self.manager.db_info['pgAgent']['has_connstr'],
|
||||
conn=self.conn
|
||||
)
|
||||
|
||||
status, res = self.conn.execute_void(sql)
|
||||
|
@ -450,7 +457,8 @@ SELECT EXISTS(
|
|||
sql = render_template(
|
||||
"/".join([self.template_path, self._NODES_SQL]),
|
||||
jstid=jstid,
|
||||
jid=jid
|
||||
jid=jid,
|
||||
conn=self.conn
|
||||
)
|
||||
status, res = self.conn.execute_2darray(sql)
|
||||
|
||||
|
@ -522,7 +530,8 @@ SELECT EXISTS(
|
|||
"/".join([self.template_path, self._CREATE_SQL]),
|
||||
jid=jid,
|
||||
data=data,
|
||||
has_connstr=self.manager.db_info['pgAgent']['has_connstr']
|
||||
has_connstr=self.manager.db_info['pgAgent']['has_connstr'],
|
||||
conn=self.conn
|
||||
)
|
||||
|
||||
return make_json_response(
|
||||
|
@ -539,7 +548,8 @@ SELECT EXISTS(
|
|||
"/".join([self.template_path, self._PROPERTIES_SQL]),
|
||||
jstid=jstid,
|
||||
jid=jid,
|
||||
has_connstr=self.manager.db_info['pgAgent']['has_connstr']
|
||||
has_connstr=self.manager.db_info['pgAgent']['has_connstr'],
|
||||
conn=self.conn
|
||||
)
|
||||
status, res = self.conn.execute_dict(sql)
|
||||
|
||||
|
@ -563,7 +573,8 @@ SELECT EXISTS(
|
|||
jid=jid,
|
||||
jstid=jstid,
|
||||
data=data,
|
||||
has_connstr=self.manager.db_info['pgAgent']['has_connstr']
|
||||
has_connstr=self.manager.db_info['pgAgent']['has_connstr'],
|
||||
conn=self.conn
|
||||
)
|
||||
|
||||
return make_json_response(
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{##################################################}
|
||||
{# This will be specific macro for pga_exception. #}
|
||||
{##################################################}
|
||||
{% macro INSERT(jscid, data) -%}
|
||||
{% macro INSERT(jscid, data, conn) -%}
|
||||
-- Inserting a schedule exception {% if jscid %}(schedule: {{ jscid|qtLiteral(conn)}}){% endif %}
|
||||
|
||||
INSERT INTO pgagent.pga_exception (
|
||||
|
@ -11,14 +11,14 @@ INSERT INTO pgagent.pga_exception (
|
|||
|
||||
);
|
||||
{%- endmacro %}
|
||||
{% macro UPDATE(jscid, data) -%}
|
||||
{% macro UPDATE(jscid, data, conn) -%}
|
||||
-- Updating an existing schedule exception (id: {{ data.jexid|qtLiteral(conn) }}, schedule: {{ jscid|qtLiteral(conn) }})
|
||||
UPDATE pgagent.pga_exception SET
|
||||
{% if 'jexdate' in data %}jexdate={% if data.jexdate %}to_date({{ data.jexdate|qtLiteral(conn) }}, 'YYYY-MM-DD')::date{% else %}NULL::date{% endif %}{% endif %}{% if 'jextime' in data%}{% if 'jexdate' in data %}, {% endif %}jextime={% if data.jextime %}{{ data.jextime|qtLiteral(conn) }}::time without time zone{% else %}NULL::time without time zone{% endif %}{% endif %}
|
||||
|
||||
WHERE jexid={{ data.jexid|qtLiteral(conn) }}::integer AND jexscid={{ jscid|qtLiteral(conn) }}::integer;
|
||||
{%- endmacro %}
|
||||
{% macro DELETE(jscid, data) -%}
|
||||
{% macro DELETE(jscid, data, conn) -%}
|
||||
-- Deleting a schedule exception (id: {{ data.jexid|qtLiteral(conn) }}, schedule: {{ jscid|qtLiteral(conn) }})
|
||||
DELETE FROM pgagent.pga_exception WHERE jexid={{ data.jexid|qtLiteral(conn) }}::integer AND jexscid={{ jscid|qtLiteral(conn) }}::integer;
|
||||
{%- endmacro %}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{################################################}
|
||||
{# This will be specific macro for pga_jobstep. #}
|
||||
{################################################}
|
||||
{% macro INSERT(has_connstr, jid, data) -%}
|
||||
{% macro INSERT(has_connstr, jid, data, conn) -%}
|
||||
-- Inserting a step (jobid: {{ jid|qtLiteral(conn) }})
|
||||
INSERT INTO pgagent.pga_jobstep (
|
||||
jstjobid, jstname, jstenabled, jstkind,
|
||||
|
@ -13,7 +13,7 @@ INSERT INTO pgagent.pga_jobstep (
|
|||
{{ data.jstcode|qtLiteral(conn) }}::text, {{ data.jstdesc|qtLiteral(conn) }}::text
|
||||
) {% if jid %}RETURNING jstid{% endif %};
|
||||
{%- endmacro %}
|
||||
{% macro UPDATE(has_connstr, jid, jstid, data) -%}
|
||||
{% macro UPDATE(has_connstr, jid, jstid, data, conn) -%}
|
||||
{% if 'jstname' in data or 'jstenabled' in data or 'jstdesc' in data or 'jstonerror' in data or 'jstcode' in data %}
|
||||
{% set is_comma_required = True %}
|
||||
{% else %}
|
||||
|
@ -36,11 +36,11 @@ SET
|
|||
|
||||
WHERE jstid={{ jstid|qtLiteral(conn) }}::integer AND jstjobid={{ jid|qtLiteral(conn) }}::integer;
|
||||
{%- endmacro %}
|
||||
{% macro DELETE(jid, jstid) -%}
|
||||
{% macro DELETE(jid, jstid, conn) -%}
|
||||
-- Deleting a step (id: {{ jstid|qtLiteral(conn) }}, jobid: {{ jid|qtLiteral(conn) }})
|
||||
DELETE FROM pgagent.pga_jobstep WHERE jstid={{ jstid|qtLiteral(conn) }}::integer AND jstjobid={{ jid|qtLiteral(conn) }}::integer;
|
||||
{%- endmacro %}
|
||||
{% macro PROPERTIES(has_connstr, jid, jstid) -%}
|
||||
{% macro PROPERTIES(has_connstr, jid, jstid, conn) -%}
|
||||
SELECT
|
||||
jstid, jstjobid, jstname, jstdesc, jstenabled, jstkind = 's'::bpchar as jstkind,
|
||||
jstcode, CASE WHEN (jstdbname != '' OR jstkind = 'b'::bpchar) THEN true ELSE false END AS jstconntype,
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
{# This will be specific macro for pga_schedule. #}
|
||||
{#################################################}
|
||||
{% import 'macros/pga_exception.macros' as EXCEPTIONS %}
|
||||
{% macro INSERT(jid, data) -%}
|
||||
{% macro INSERT(jid, data, conn) -%}
|
||||
-- Inserting a schedule{% if jid %} (jobid: {{ jid|qtLiteral(conn) }}){% endif %}
|
||||
|
||||
INSERT INTO pgagent.pga_schedule(
|
||||
|
@ -26,9 +26,9 @@ INSERT INTO pgagent.pga_schedule(
|
|||
) RETURNING jscid INTO scid;{% if 'jscexceptions' in data %}
|
||||
{% for exc in data.jscexceptions %}
|
||||
|
||||
{{ EXCEPTIONS.INSERT(None, exc) }}{% endfor %}{% endif %}
|
||||
{{ EXCEPTIONS.INSERT(None, exc, conn) }}{% endfor %}{% endif %}
|
||||
{%- endmacro %}
|
||||
{% macro UPDATE(jid, jscid, data) -%}
|
||||
{% macro UPDATE(jid, jscid, data, conn) -%}
|
||||
{% if 'jscname' in data or 'jscenabled' in data or 'jscdesc' in data or 'jscstart' in data or 'jscend' in data or 'jscmonths' in data or 'jscminutes' in data or 'jscmonthdays' in data or 'jschours' in data or 'jscweekdays' in data %}
|
||||
|
||||
-- Updating the schedule (id: {{ jscid|qtLiteral(conn) }}, jobid: {{ jid|qtLiteral(conn) }})
|
||||
|
@ -59,31 +59,31 @@ WHERE jscid={{ jscid|qtLiteral(conn) }}::integer AND jscjobid={{ jid|qtLiteral(c
|
|||
{% if 'added' in data.jscexceptions and data.jscexceptions.added|length > 0 %}
|
||||
|
||||
{% for exc in data.jscexceptions.added %}
|
||||
{{ EXCEPTIONS.INSERT(jscid, exc) }}
|
||||
{{ EXCEPTIONS.INSERT(jscid, exc, conn) }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if 'deleted' in data.jscexceptions and data.jscexceptions.deleted|length > 0 %}
|
||||
|
||||
{% for exc in data.jscexceptions.deleted %}
|
||||
{{ EXCEPTIONS.DELETE(jscid, exc) }}
|
||||
{{ EXCEPTIONS.DELETE(jscid, exc, conn) }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if 'changed' in data.jscexceptions and data.jscexceptions.changed|length > 0 %}
|
||||
|
||||
{% for exc in data.jscexceptions.changed %}
|
||||
{{ EXCEPTIONS.UPDATE(jscid, exc) }}
|
||||
{{ EXCEPTIONS.UPDATE(jscid, exc, conn) }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{%- endmacro %}
|
||||
{% macro DELETE(jid, jscid) -%}
|
||||
{% macro DELETE(jid, jscid, conn) -%}
|
||||
-- Removing the existing schedule (id: {{ jscid|qtLiteral(conn) }}, jobid: {{ jid|qtLiteral(conn) }})
|
||||
DELETE FROM pgagent.pga_schedule WHERE jscid={{ jscid|qtLiteral(conn) }}::integer AND jscjobid={{ jid|qtLiteral(conn) }}::integer;
|
||||
{%- endmacro %}
|
||||
{% macro FETCH_CURRENT() -%}
|
||||
SELECT jscid FROM pgagent.pga_schedule WHERE xmin::text = (txid_current() % (2^32)::bigint)::text;
|
||||
{%- endmacro %}
|
||||
{% macro PROPERTIES(jid, jscid) -%}
|
||||
{% macro PROPERTIES(jid, jscid, conn) -%}
|
||||
SELECT
|
||||
jscid, jscjobid, jscname, jscdesc, jscenabled, jscstart, jscend,
|
||||
jscminutes, jschours, jscweekdays, jscmonthdays, jscmonths,
|
||||
|
|
|
@ -17,12 +17,12 @@ INSERT INTO pgagent.pga_job(
|
|||
|
||||
|
||||
-- Steps
|
||||
{% for step in data.jsteps %}{{ STEP.INSERT(has_connstr, None, step) }}{% endfor %}
|
||||
{% for step in data.jsteps %}{{ STEP.INSERT(has_connstr, None, step, conn) }}{% endfor %}
|
||||
{% endif %}{% if 'jschedules' in data and data.jschedules|length > 0 %}
|
||||
|
||||
|
||||
-- Schedules
|
||||
{% for schedule in data.jschedules %}{{ SCHEDULE.INSERT(None, schedule) }}{% endfor %}
|
||||
{% for schedule in data.jschedules %}{{ SCHEDULE.INSERT(None, schedule, conn) }}{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
END
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
{% import 'macros/pga_schedule.macros' as SCHEDULE %}
|
||||
{{ SCHEDULE.PROPERTIES(jid, jscid) }}
|
||||
{{ SCHEDULE.PROPERTIES(jid, jscid, conn) }}
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
{% import 'macros/pga_jobstep.macros' as STEP %}
|
||||
{{ STEP.PROPERTIES(has_connstr, jid, jstid) }}
|
||||
{{ STEP.PROPERTIES(has_connstr, jid, jstid, conn) }}
|
||||
|
|
|
@ -11,19 +11,19 @@ SET {% if 'jobjclid' in data %}jobjclid={{ data.jobjclid|qtLiteral(conn) }}::int
|
|||
WHERE jobid = {{ jid }};
|
||||
{% endif %}{% if 'jsteps' in data %}
|
||||
|
||||
{% if 'deleted' in data.jsteps %}{% for step in data.jsteps.deleted %}{{ STEP.DELETE(jid, step.jstid) }}{% endfor %}{% endif %}
|
||||
{% if 'changed' in data.jsteps %}{% for step in data.jsteps.changed %}{{ STEP.UPDATE(has_connstr, jid, step.jstid, step) }}{% endfor %}{% endif %}
|
||||
{% if 'added' in data.jsteps %}{% for step in data.jsteps.added %}{{ STEP.INSERT(has_connstr, jid, step) }}{% endfor %}{% endif %}{% endif %}{% if 'jschedules' in data %}
|
||||
{% if 'deleted' in data.jsteps %}{% for step in data.jsteps.deleted %}{{ STEP.DELETE(jid, step.jstid, conn) }}{% endfor %}{% endif %}
|
||||
{% if 'changed' in data.jsteps %}{% for step in data.jsteps.changed %}{{ STEP.UPDATE(has_connstr, jid, step.jstid, step, conn) }}{% endfor %}{% endif %}
|
||||
{% if 'added' in data.jsteps %}{% for step in data.jsteps.added %}{{ STEP.INSERT(has_connstr, jid, step, conn) }}{% endfor %}{% endif %}{% endif %}{% if 'jschedules' in data %}
|
||||
|
||||
{% if 'deleted' in data.jschedules %}{% for schedule in data.jschedules.deleted %}{{ SCHEDULE.DELETE(jid, schedule.jscid) }}{% endfor %}{% endif %}
|
||||
{% if 'changed' in data.jschedules %}{% for schedule in data.jschedules.changed %}{{ SCHEDULE.UPDATE(jid, schedule.jscid, schedule) }}{% endfor %}{% endif %}
|
||||
{% if 'deleted' in data.jschedules %}{% for schedule in data.jschedules.deleted %}{{ SCHEDULE.DELETE(jid, schedule.jscid, conn) }}{% endfor %}{% endif %}
|
||||
{% if 'changed' in data.jschedules %}{% for schedule in data.jschedules.changed %}{{ SCHEDULE.UPDATE(jid, schedule.jscid, schedule, conn) }}{% endfor %}{% endif %}
|
||||
{% if 'added' in data.jschedules %}
|
||||
|
||||
DO $$
|
||||
DECLARE
|
||||
scid integer;
|
||||
BEGIN
|
||||
{% for schedule in data.jschedules.added %}{{ SCHEDULE.INSERT(jid, schedule) }}{% endfor %}
|
||||
{% for schedule in data.jschedules.added %}{{ SCHEDULE.INSERT(jid, schedule, conn) }}{% endfor %}
|
||||
END
|
||||
$$;
|
||||
{% endif %}
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
{% import 'macros/pga_jobstep.macros' as STEP %}
|
||||
{{ STEP.INSERT(has_connstr, jid, data) }}
|
||||
{{ STEP.INSERT(has_connstr, jid, data, conn) }}
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
{% import 'macros/pga_jobstep.macros' as STEP %}
|
||||
{{ STEP.DELETE(jid, jstid) }}
|
||||
{{ STEP.DELETE(jid, jstid, conn) }}
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
{% import 'macros/pga_jobstep.macros' as STEP %}
|
||||
{{ STEP.PROPERTIES(has_connstr, jid, jstid) }}
|
||||
{{ STEP.PROPERTIES(has_connstr, jid, jstid, conn) }}
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
{% import 'macros/pga_jobstep.macros' as STEP %}
|
||||
{{ STEP.UPDATE(has_connstr, jid, jstid, data) }}
|
||||
{{ STEP.UPDATE(has_connstr, jid, jstid, data, conn) }}
|
||||
|
|
|
@ -3,7 +3,7 @@ DO $$
|
|||
DECLARE
|
||||
scid integer;
|
||||
BEGIN
|
||||
{{ SCHEDULE.INSERT(jid, data) }}
|
||||
{{ SCHEDULE.INSERT(jid, data, conn) }}
|
||||
END
|
||||
$$;{% if fetch_id %}
|
||||
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
{% import 'macros/pga_schedule.macros' as SCHEDULE %}
|
||||
{{ SCHEDULE.DELETE(jid, jscid) }}
|
||||
{{ SCHEDULE.DELETE(jid, jscid, conn) }}
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
{% import 'macros/pga_schedule.macros' as SCHEDULE %}
|
||||
{{ SCHEDULE.PROPERTIES(jid, jscid) }}
|
||||
{{ SCHEDULE.PROPERTIES(jid, jscid, conn) }}
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
{% import 'macros/pga_schedule.macros' as SCHEDULE %}
|
||||
{{ SCHEDULE.UPDATE(jid, jscid, data) }}
|
||||
{{ SCHEDULE.UPDATE(jid, jscid, data, conn) }}
|
||||
|
|
Loading…
Reference in New Issue