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 */
111 const char* basic_checkout =
112  " SELECT jq.jq_pk, jq.jq_job_fk, jq.jq_type, jq.jq_host,"
113  " jq.jq_runonpfile, jq.jq_args, jq.jq_cmd_args,"
114  " u.user_pk, j.job_priority, j.job_group_fk AS group_pk"
115  " FROM jobqueue jq"
116  " INNER JOIN job j ON j.job_pk = jq.jq_job_fk"
117  " LEFT JOIN users u ON u.user_pk = j.job_user_fk"
118  " WHERE jq.jq_starttime IS NULL AND jq.jq_end_bits < 2"
119  " AND NOT EXISTS("
120  " SELECT 1 FROM jobdepends jd"
121  " INNER JOIN jobqueue dep ON dep.jq_pk = jd.jdep_jq_depends_fk"
122  " WHERE jd.jdep_jq_fk = jq.jq_pk"
123  " AND NOT (dep.jq_endtime IS NOT NULL AND dep.jq_end_bits < 2)"
124  " )"
125  " ORDER BY j.job_priority DESC"
126  " LIMIT 10;";
127 
131 const char* jobsql_started =
132  " UPDATE jobqueue "
133  " SET jq_starttime = now(), "
134  " jq_schedinfo ='%s.%d', "
135  " jq_endtext = 'Started' "
136  " WHERE jq_pk = %d;";
137 
141 const char* jobsql_complete =
142  " UPDATE jobqueue "
143  " SET jq_endtime = now(), "
144  " jq_end_bits = jq_end_bits | 1, "
145  " jq_schedinfo = null, "
146  " jq_endtext = 'Completed' "
147  " WHERE jq_pk = %d;";
148 
152 const char* jobsql_restart =
153  " UPDATE jobqueue "
154  " SET jq_endtext = 'Restarted', "
155  " jq_starttime = ( CASE "
156  " WHEN jq_starttime = CAST('9999-12-31' AS timestamp with time zone) "
157  " THEN null "
158  " ELSE jq_starttime "
159  " END ) "
160  " WHERE jq_pk = %d;";
161 
165 const char* jobsql_failed =
166  " UPDATE jobqueue "
167  " SET jq_endtime = now(), "
168  " jq_end_bits = jq_end_bits | 2, "
169  " jq_schedinfo = null, "
170  " jq_endtext = '%s' "
171  " WHERE jq_pk = %d;";
172 
176 const char* jobsql_processed =
177  " Update jobqueue "
178  " SET jq_itemsprocessed = %d "
179  " WHERE jq_pk = %d;";
180 
184 const char* jobsql_paused =
185  " UPDATE jobqueue "
186  " SET jq_endtext = 'Paused', "
187  " jq_starttime = ( CASE "
188  " WHEN jq_starttime IS NULL "
189  " THEN CAST('9999-12-31' AS timestamp with time zone) "
190  " ELSE jq_starttime "
191  " END ) "
192  " WHERE jq_pk = %d;";
193 
197 const char* jobsql_log =
198  " UPDATE jobqueue "
199  " SET jq_log = '%s' "
200  " WHERE jq_pk = %d;";
201 
205 const char* jobsql_priority =
206  " UPDATE job "
207  " SET job_priority = %d "
208  " WHERE job_pk IN ( "
209  " SELECT jq_job_fk FROM jobqueue "
210  " WHERE jq_pk = %d);";
211 
215 const char* jobsql_anyrunnable =
216  " SELECT 1 FROM jobqueue jq"
217  " WHERE jq.jq_starttime IS NULL AND jq.jq_end_bits < 2"
218  " AND NOT EXISTS("
219  " SELECT 1 FROM jobdepends jd"
220  " INNER JOIN jobqueue dep ON dep.jq_pk = jd.jdep_jq_depends_fk"
221  " WHERE jd.jdep_jq_fk = jq.jq_pk"
222  " AND NOT (dep.jq_endtime IS NOT NULL AND dep.jq_end_bits < 2)"
223  " )"
224  " AND jq.jq_job_fk = (SELECT jq_job_fk FROM jobqueue WHERE jq_pk = %d)"
225  " LIMIT 1;";
226 
230 const char* jobsql_jobendbits =
231  " SELECT jq2.jq_pk, jq2.jq_end_bits"
232  " FROM jobqueue jq1"
233  " INNER JOIN jobqueue jq2 ON jq2.jq_job_fk = jq1.jq_job_fk"
234  " WHERE jq1.jq_pk = %d;";
235 
239 const char* jobsql_resetqueue =
240  "UPDATE jobqueue "
241  " SET jq_starttime=null, "
242  " jq_endtext=null, "
243  " jq_schedinfo=null "
244  " WHERE jq_endtime is NULL;";
245 
249 const char* jobsql_jobinfo =
250  " SELECT jq2.*"
251  " FROM jobqueue jq1"
252  " INNER JOIN jobqueue jq2 ON jq2.jq_job_fk = jq1.jq_job_fk"
253  " WHERE jq1.jq_pk = %d;";
254 
258 const char* smtp_values =
259  " SELECT conf_value, variablename FROM sysconfig "
260  " WHERE variablename LIKE 'SMTP%';";
261 
262 #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