*
* Kern Sibbald, March 2000
*
- * Version $Id$
+ * Version $Id: sql_create.c 8407 2009-01-28 10:47:21Z ricozz $
*/
/* The following is necessary so that we do not include
static const int dbglevel = 100;
-#if HAVE_SQLITE3 || HAVE_MYSQL || HAVE_SQLITE || HAVE_POSTGRESQL || HAVE_DBI
+#if HAVE_SQLITE3 || HAVE_MYSQL || HAVE_SQLITE || HAVE_POSTGRESQL || HAVE_INGRES || HAVE_DBI
/* -----------------------------------------------------------------------
*
bool
db_create_job_record(JCR *jcr, B_DB *mdb, JOB_DBR *jr)
{
+ POOL_MEM buf;
char dt[MAX_TIME_LENGTH];
time_t stime;
struct tm tm;
bool ok;
+ int len;
utime_t JobTDate;
char ed1[30],ed2[30];
strftime(dt, sizeof(dt), "%Y-%m-%d %H:%M:%S", &tm);
JobTDate = (utime_t)stime;
+ len = strlen(jcr->comment);
+ buf.check_size(len*2+1);
+ db_escape_string(jcr, mdb, buf.c_str(), jcr->comment, len);
+
/* Must create it */
Mmsg(mdb->cmd,
-"INSERT INTO Job (Job,Name,Type,Level,JobStatus,SchedTime,JobTDate,ClientId) "
-"VALUES ('%s','%s','%c','%c','%c','%s',%s,%s)",
+"INSERT INTO Job (Job,Name,Type,Level,JobStatus,SchedTime,JobTDate,"
+ "ClientId,Comment) "
+"VALUES ('%s','%s','%c','%c','%c','%s',%s,%s,'%s')",
jr->Job, jr->Name, (char)(jr->JobType), (char)(jr->JobLevel),
(char)(jr->JobStatus), dt, edit_uint64(JobTDate, ed1),
- edit_int64(jr->ClientId, ed2));
+ edit_int64(jr->ClientId, ed2), buf.c_str());
if (!INSERT_DB(jcr, mdb, mdb->cmd)) {
Mmsg2(&mdb->errmsg, _("Create DB Job record %s failed. ERR=%s\n"),
stat = true;
}
db_unlock(mdb);
+ Dmsg0(500, "Create Pool: done\n");
return stat;
}
sr->StorageId = 0;
sr->created = false;
+ /* Check if it already exists */
if (QUERY_DB(jcr, mdb, mdb->cmd)) {
mdb->num_rows = sql_num_rows(mdb);
/* If more than one, report error, but return first row */
/* List of SQL commands to create temp table and indicies */
-const char *create_temp_basefile[4] = {
+const char *create_temp_basefile[5] = {
/* MySQL */
"CREATE TEMPORARY TABLE basefile%lld ("
// "CREATE TABLE basefile%lld ("
/* SQLite3 */
"CREATE TEMPORARY TABLE basefile%lld ("
"Path TEXT,"
- "Name TEXT)"
+ "Name TEXT)",
+
+ /* Ingres */
+ "DECLARE GLOBAL TEMPORARY TABLE basefile%lld ("
+ "Path TEXT NOT NULL,"
+ "Name TEXT NOT NULL)"
};
/*
return ret;
}
-#endif /* HAVE_SQLITE3 || HAVE_MYSQL || HAVE_SQLITE || HAVE_POSTGRESQL || HAVE_DBI */
+#endif /* HAVE_SQLITE3 || HAVE_MYSQL || HAVE_SQLITE || HAVE_POSTGRESQL || HAVE_INGRES || HAVE_DBI */