File: delivery.sql

package info (click to toggle)
derby 10.14.2.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 79,056 kB
  • sloc: java: 691,961; sql: 42,686; xml: 20,512; sh: 3,373; sed: 96; makefile: 60
file content (58 lines) | stat: -rw-r--r-- 2,140 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
-- Licensed to the Apache Software Foundation (ASF) under one or more
-- contributor license agreements.  See the NOTICE file distributed with
-- this work for additional information regarding copyright ownership.
-- The ASF licenses this file to You under the Apache License, Version 2.0
-- (the "License"); you may not use this file except in compliance with
-- the License.  You may obtain a copy of the License at
--
--    http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
;

-- Routines related to the delivery transaction
-- Section 2.7
--
-- OrderEntry (OE) uses the database as the queueing
-- mechanism and the "results file"
-- described by the TPC-C specification in section 2.7.
-- This exceeds the requirements of the specification
-- (no ACID required) but since the focus of OE is to
-- test Derby, it seems additional work against the
-- database is a good thing. It also provides a consistent
-- and standard way to access the data, including from clients.
;

-- Requests are queued in this table.
-- DR_STATE Q-queued, Pin progress, C-complete, E-error
;
CREATE TABLE DELIVERY_REQUEST
(
   DR_ID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
   DR_W_ID SMALLINT NOT NULL,
   DR_CARRIER_ID SMALLINT NOT NULL,
   DR_QUEUED TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
   DR_COMPLETED TIMESTAMP,
   DR_STATE  CHAR(1)
     CONSTRAINT DR_STATE_CHECK CHECK (DR_STATE IN ('Q', 'I', 'C', 'E'))
);

-- Index to allow lookup of the oldest queued order.
;
CREATE INDEX DR_LOOKUP ON DELIVERY_REQUEST(DR_STATE, DR_QUEUED);

-- Record of orders delivered.
-- A NULL DL_O_ID means that no orders for that district could be delivered.
;
CREATE TABLE DELIVERY_ORDERS
(
   DO_DR_ID INTEGER NOT NULL CONSTRAINT DO_FK REFERENCES DELIVERY_REQUEST(DR_ID),
   DO_D_ID SMALLINT NOT NULL,
   DO_O_ID INTEGER
);