FOSSology  4.7.1
Open Source License Compliance by Open Source Software
sqlstatements.h
Go to the documentation of this file.
1 /*
2  SPDX-FileCopyrightText: © 2012 Hewlett-Packard Development Company, L.P.
3  SPDX-FileCopyrightText: © 2015, 2018 Siemens AG
4 
5  SPDX-License-Identifier: GPL-2.0-only
6 */
7 
16 #ifndef SQLSTATEMENTS_H
17 #define SQLSTATEMENTS_H
18 
23  " SELECT column_name FROM information_schema.columns "
24  " WHERE table_catalog = '%s' "
25  " AND table_schema = 'public' "
26  " AND table_name = ";
27 
31 const char* url_checkout =
32  " SELECT conf_value FROM sysconfig "
33  " WHERE variablename = 'FOSSologyURL';";
34 
38 const char* select_upload_fk =
39  " SELECT j.job_upload_fk FROM job j"
40  " INNER JOIN jobqueue jq ON jq.jq_job_fk = j.job_pk"
41  " WHERE jq.jq_pk = %d;";
42 
46 const char* upload_common =
47  " SELECT * FROM jobqueue "
48  " LEFT JOIN job ON jq_job_fk = job_pk"
49  " WHERE job.job_upload_fk = %d;";
50 
54 const char* folder_name =
55  " SELECT folder_name, folder_pk FROM folder "
56  " LEFT JOIN foldercontents ON folder_pk = foldercontents.parent_fk "
57  " LEFT JOIN job ON child_id = job_upload_fk "
58  " LEFT JOIN jobqueue ON jq_job_fk = job_pk "
59  " WHERE jq_pk = %d;";
60 
65 const char* parent_folder_name =
66  " SELECT folder_name, folder_pk FROM folder "
67  " INNER JOIN foldercontents ON folder_pk=foldercontents.parent_fk "
68  " WHERE child_id = %d AND foldercontents_mode = 1;";
69 
73 const char* upload_name =
74  " SELECT upload_filename FROM upload "
75  " LEFT JOIN job ON upload_pk = job_upload_fk "
76  " LEFT JOIN jobqueue ON jq_job_fk = job_pk "
77  " WHERE jq_pk = %d;";
78 
82 const char* upload_pk =
83  " SELECT upload_fk, uploadtree_pk FROM uploadtree "
84  " LEFT JOIN job ON upload_fk = job_upload_fk "
85  " LEFT JOIN jobqueue ON jq_job_fk = job_pk "
86  " WHERE parent IS NULL"
87  " AND jq_pk = %d;";
88 
92 const char* jobsql_email =
93  " SELECT user_name, user_email, email_notify FROM users, upload "
94  " WHERE user_pk = user_fk "
95  " AND upload_pk = %d;";
96 
100 const char* jobsql_email_job =
101  " SELECT user_name, user_email, email_notify FROM users, job, jobqueue "
102  " WHERE user_pk = job_user_fk AND job_pk = jq_job_fk "
103  " AND jq_pk = %d;";
104 
105 /* job queue related sql */
118 const char* basic_checkout =
119  " SELECT jq.jq_pk, jq.jq_job_fk, jq.jq_type, jq.jq_host,"
120  " jq.jq_runonpfile, jq.jq_args, jq.jq_cmd_args,"
121  " u.user_pk, j.job_priority, j.job_group_fk AS group_pk"
122  " FROM jobqueue jq"
123  " INNER JOIN job j ON j.job_pk = jq.jq_job_fk"
124  " LEFT JOIN users u ON u.user_pk = j.job_user_fk"
125  " WHERE jq.jq_starttime IS NULL AND jq.jq_end_bits < 2"
126  " AND jq.jq_pk NOT IN (%s)"
127  " AND NOT EXISTS("
128  " SELECT 1 FROM jobdepends jd"
129  " INNER JOIN jobqueue dep ON dep.jq_pk = jd.jdep_jq_depends_fk"
130  " WHERE jd.jdep_jq_fk = jq.jq_pk"
131  " AND NOT (dep.jq_endtime IS NOT NULL AND dep.jq_end_bits < 2)"
132  " )"
133  " ORDER BY j.job_priority DESC"
134  " LIMIT %d;";
135 
139 const char* jobsql_started =
140  " UPDATE jobqueue "
141  " SET jq_starttime = now(), "
142  " jq_schedinfo ='%s.%d', "
143  " jq_endtext = 'Started' "
144  " WHERE jq_pk = %d;";
145 
149 const char* jobsql_complete =
150  " UPDATE jobqueue "
151  " SET jq_endtime = now(), "
152  " jq_end_bits = jq_end_bits | 1, "
153  " jq_schedinfo = null, "
154  " jq_endtext = 'Completed' "
155  " WHERE jq_pk = %d;";
156 
160 const char* jobsql_restart =
161  " UPDATE jobqueue "
162  " SET jq_endtext = 'Restarted', "
163  " jq_starttime = ( CASE "
164  " WHEN jq_starttime = CAST('9999-12-31' AS timestamp with time zone) "
165  " THEN null "
166  " ELSE jq_starttime "
167  " END ) "
168  " WHERE jq_pk = %d;";
169 
173 const char* jobsql_failed =
174  " UPDATE jobqueue "
175  " SET jq_endtime = now(), "
176  " jq_end_bits = jq_end_bits | 2, "
177  " jq_schedinfo = null, "
178  " jq_endtext = '%s' "
179  " WHERE jq_pk = %d;";
180 
184 const char* jobsql_processed =
185  " Update jobqueue "
186  " SET jq_itemsprocessed = %d "
187  " WHERE jq_pk = %d;";
188 
192 const char* jobsql_paused =
193  " UPDATE jobqueue "
194  " SET jq_endtext = 'Paused', "
195  " jq_starttime = ( CASE "
196  " WHEN jq_starttime IS NULL "
197  " THEN CAST('9999-12-31' AS timestamp with time zone) "
198  " ELSE jq_starttime "
199  " END ) "
200  " WHERE jq_pk = %d;";
201 
205 const char* jobsql_log =
206  " UPDATE jobqueue "
207  " SET jq_log = '%s' "
208  " WHERE jq_pk = %d;";
209 
213 const char* jobsql_priority =
214  " UPDATE job "
215  " SET job_priority = %d "
216  " WHERE job_pk IN ( "
217  " SELECT jq_job_fk FROM jobqueue "
218  " WHERE jq_pk = %d);";
219 
223 const char* jobsql_anyrunnable =
224  " SELECT 1 FROM jobqueue jq"
225  " WHERE jq.jq_starttime IS NULL AND jq.jq_end_bits < 2"
226  " AND NOT EXISTS("
227  " SELECT 1 FROM jobdepends jd"
228  " INNER JOIN jobqueue dep ON dep.jq_pk = jd.jdep_jq_depends_fk"
229  " WHERE jd.jdep_jq_fk = jq.jq_pk"
230  " AND NOT (dep.jq_endtime IS NOT NULL AND dep.jq_end_bits < 2)"
231  " )"
232  " AND jq.jq_job_fk = (SELECT jq_job_fk FROM jobqueue WHERE jq_pk = %d)"
233  " LIMIT 1;";
234 
238 const char* jobsql_jobendbits =
239  " SELECT jq2.jq_pk, jq2.jq_end_bits"
240  " FROM jobqueue jq1"
241  " INNER JOIN jobqueue jq2 ON jq2.jq_job_fk = jq1.jq_job_fk"
242  " WHERE jq1.jq_pk = %d;";
243 
247 const char* jobsql_resetqueue =
248  "UPDATE jobqueue "
249  " SET jq_starttime=null, "
250  " jq_endtext=null, "
251  " jq_schedinfo=null "
252  " WHERE jq_endtime is NULL;";
253 
257 const char* jobsql_jobinfo =
258  " SELECT jq2.*"
259  " FROM jobqueue jq1"
260  " INNER JOIN jobqueue jq2 ON jq2.jq_job_fk = jq1.jq_job_fk"
261  " WHERE jq1.jq_pk = %d;";
262 
266 const char* smtp_values =
267  " SELECT conf_value, variablename FROM sysconfig "
268  " WHERE variablename LIKE 'SMTP%';";
269 
270 #endif /* SQLSTATEMENTS_H */
const char * upload_pk
Definition: sqlstatements.h:82
const char * jobsql_started
const char * check_scheduler_tables
Definition: sqlstatements.h:22
const char * jobsql_paused
const char * jobsql_failed
const char * upload_common
Definition: sqlstatements.h:46
const char * jobsql_jobinfo
const char * parent_folder_name
Definition: sqlstatements.h:65
const char * jobsql_processed
const char * jobsql_log
const char * jobsql_resetqueue
const char * basic_checkout
const char * upload_name
Definition: sqlstatements.h:73
const char * smtp_values
const char * url_checkout
Definition: sqlstatements.h:31
const char * jobsql_restart
const char * jobsql_anyrunnable
const char * jobsql_complete
const char * folder_name
Definition: sqlstatements.h:54
const char * jobsql_priority
const char * jobsql_email
Definition: sqlstatements.h:92
const char * jobsql_jobendbits
const char * jobsql_email_job
const char * select_upload_fk
Definition: sqlstatements.h:38