# 
# Thanks to  Joseph Wilkicki for submitting this file's contents
#
# In your Quartz properties file, you'll need to set 
# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.HSQLDBDelegate
#
# Some users report the need to change the fields
# with datatype "OTHER" to datatype "BINARY" with
# particular versions (e.g. 1.7.1) of HSQLDB
#

CREATE TABLE qrtz_job_details
(
JOB_NAME LONGVARCHAR(80) NOT NULL,
JOB_GROUP LONGVARCHAR(80) NOT NULL,
DESCRIPTION LONGVARCHAR(120) NULL,
JOB_CLASS_NAME LONGVARCHAR(128) NOT NULL,
IS_DURABLE LONGVARCHAR(1) NOT NULL,
IS_VOLATILE LONGVARCHAR(1) NOT NULL,
IS_STATEFUL LONGVARCHAR(1) NOT NULL,
REQUESTS_RECOVERY LONGVARCHAR(1) NOT NULL,
JOB_DATA OTHER NULL,
PRIMARY KEY (JOB_NAME,JOB_GROUP)
);

CREATE TABLE qrtz_job_listeners
(
JOB_NAME LONGVARCHAR(80) NOT NULL,
JOB_GROUP LONGVARCHAR(80) NOT NULL,
JOB_LISTENER LONGVARCHAR(80) NOT NULL,
PRIMARY KEY (JOB_NAME,JOB_GROUP,JOB_LISTENER),
FOREIGN KEY (JOB_NAME,JOB_GROUP)
REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP)
);

CREATE TABLE qrtz_triggers
(
TRIGGER_NAME LONGVARCHAR(80) NOT NULL,
TRIGGER_GROUP LONGVARCHAR(80) NOT NULL,
JOB_NAME LONGVARCHAR(80) NOT NULL,
JOB_GROUP LONGVARCHAR(80) NOT NULL,
IS_VOLATILE LONGVARCHAR(1) NOT NULL,
DESCRIPTION LONGVARCHAR(120) NULL,
NEXT_FIRE_TIME NUMERIC(13) NULL,
PREV_FIRE_TIME NUMERIC(13) NULL,
TRIGGER_STATE LONGVARCHAR(16) NOT NULL,
TRIGGER_TYPE LONGVARCHAR(8) NOT NULL,
START_TIME NUMERIC(13) NOT NULL,
END_TIME NUMERIC(13) NULL,
CALENDAR_NAME LONGVARCHAR(80) NULL,
MISFIRE_INSTR NUMERIC(2) NULL,
JOB_DATA OTHER NULL,
PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (JOB_NAME,JOB_GROUP)
REFERENCES QRTZ_JOB_DETAILS(JOB_NAME,JOB_GROUP)
);

CREATE TABLE qrtz_simple_triggers
(
TRIGGER_NAME LONGVARCHAR(80) NOT NULL,
TRIGGER_GROUP LONGVARCHAR(80) NOT NULL,
REPEAT_COUNT NUMERIC(7) NOT NULL,
REPEAT_INTERVAL NUMERIC(12) NOT NULL,
TIMES_TRIGGERED NUMERIC(7) NOT NULL,
PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
);

CREATE TABLE qrtz_cron_triggers
(
TRIGGER_NAME LONGVARCHAR(80) NOT NULL,
TRIGGER_GROUP LONGVARCHAR(80) NOT NULL,
CRON_EXPRESSION LONGVARCHAR(80) NOT NULL,
TIME_ZONE_ID LONGVARCHAR(80),
PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
);

CREATE TABLE qrtz_blob_triggers
(
TRIGGER_NAME LONGVARCHAR(80) NOT NULL,
TRIGGER_GROUP LONGVARCHAR(80) NOT NULL,
BLOB_DATA OTHER NULL,
PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
);

CREATE TABLE qrtz_trigger_listeners
(
TRIGGER_NAME LONGVARCHAR(80) NOT NULL,
TRIGGER_GROUP LONGVARCHAR(80) NOT NULL,
TRIGGER_LISTENER LONGVARCHAR(80) NOT NULL,
PRIMARY KEY (TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_LISTENER),
FOREIGN KEY (TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(TRIGGER_NAME,TRIGGER_GROUP)
);

CREATE TABLE qrtz_calendars
(
CALENDAR_NAME LONGVARCHAR(80) NOT NULL,
CALENDAR OTHER NOT NULL,
PRIMARY KEY (CALENDAR_NAME)
); 

CREATE TABLE qrtz_paused_trigger_grps
  (
    TRIGGER_GROUP  LONGVARCHAR(80) NOT NULL, 
    PRIMARY KEY (TRIGGER_GROUP)
);

CREATE TABLE qrtz_fired_triggers 
  (
    ENTRY_ID LONGVARCHAR(95) NOT NULL,
    TRIGGER_NAME LONGVARCHAR(80) NOT NULL,
    TRIGGER_GROUP LONGVARCHAR(80) NOT NULL,
    IS_VOLATILE LONGVARCHAR(1) NOT NULL,
    INSTANCE_NAME LONGVARCHAR(80) NOT NULL,
    FIRED_TIME NUMERIC(13) NOT NULL,
    STATE LONGVARCHAR(16) NOT NULL,
    JOB_NAME LONGVARCHAR(80) NULL,
    JOB_GROUP LONGVARCHAR(80) NULL,
    IS_STATEFUL LONGVARCHAR(1) NULL,
    REQUESTS_RECOVERY LONGVARCHAR(1) NULL,
    PRIMARY KEY (ENTRY_ID)
);

CREATE TABLE qrtz_scheduler_state 
  (
    INSTANCE_NAME LONGVARCHAR(80) NOT NULL,
    LAST_CHECKIN_TIME NUMERIC(13) NOT NULL,
    CHECKIN_INTERVAL NUMERIC(13) NOT NULL,
    RECOVERER LONGVARCHAR(80) NULL,
    PRIMARY KEY (INSTANCE_NAME)
);

CREATE TABLE qrtz_locks
  (
    LOCK_NAME  LONGVARCHAR(40) NOT NULL, 
    PRIMARY KEY (LOCK_NAME)
);


INSERT INTO qrtz_locks values('TRIGGER_ACCESS');
INSERT INTO qrtz_locks values('JOB_ACCESS');
INSERT INTO qrtz_locks values('CALENDAR_ACCESS');
INSERT INTO qrtz_locks values('STATE_ACCESS');
INSERT INTO qrtz_locks values('MISFIRE_ACCESS');

commit;
