]> git.pld-linux.org Git - packages/db4.6.git/blob - patch.4.6.21.3
- do not define epoch 0
[packages/db4.6.git] / patch.4.6.21.3
1 *** sequence/sequence.c
2 --- sequence/sequence.c
3 ***************
4 *** 196,202 ****
5         if ((ret = __db_get_flags(dbp, &tflags)) != 0)
6                 goto err;
7   
8 !       if (DB_IS_READONLY(dbp)) {
9                 ret = __db_rdonly(dbp->dbenv, "DB_SEQUENCE->open");
10                 goto err;
11         }
12 --- 196,206 ----
13         if ((ret = __db_get_flags(dbp, &tflags)) != 0)
14                 goto err;
15   
16 !       /*
17 !        * We can let replication clients open sequences, but must
18 !        * check later that they do not update them.
19 !        */
20 !       if (F_ISSET(dbp, DB_AM_RDONLY)) {
21                 ret = __db_rdonly(dbp->dbenv, "DB_SEQUENCE->open");
22                 goto err;
23         }
24 ***************
25 *** 252,257 ****
26 --- 256,266 ----
27                 if ((ret != DB_NOTFOUND && ret != DB_KEYEMPTY) ||
28                     !LF_ISSET(DB_CREATE))
29                         goto err;
30 +               if (IS_REP_CLIENT(dbenv) &&
31 +                   !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
32 +                       ret = __db_rdonly(dbenv, "DB_SEQUENCE->open");
33 +                       goto err;
34 +               }
35                 ret = 0;
36   
37                 rp = &seq->seq_record;
38 ***************
39 *** 304,310 ****
40          */
41         rp = seq->seq_data.data;
42         if (rp->seq_version == DB_SEQUENCE_OLDVER) {
43 ! oldver:               rp->seq_version = DB_SEQUENCE_VERSION;
44                 if (__db_isbigendian()) {
45                         if (IS_DB_AUTO_COMMIT(dbp, txn)) {
46                                 if ((ret =
47 --- 313,324 ----
48          */
49         rp = seq->seq_data.data;
50         if (rp->seq_version == DB_SEQUENCE_OLDVER) {
51 ! oldver:               if (IS_REP_CLIENT(dbenv) &&
52 !                   !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
53 !                       ret = __db_rdonly(dbenv, "DB_SEQUENCE->open");
54 !                       goto err;
55 !               }
56 !               rp->seq_version = DB_SEQUENCE_VERSION;
57                 if (__db_isbigendian()) {
58                         if (IS_DB_AUTO_COMMIT(dbp, txn)) {
59                                 if ((ret =
60 ***************
61 *** 713,718 ****
62 --- 727,738 ----
63   
64         MUTEX_LOCK(dbenv, seq->mtx_seq);
65   
66 +       if (handle_check && IS_REP_CLIENT(dbenv) &&
67 +           !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
68 +               ret = __db_rdonly(dbenv, "DB_SEQUENCE->get");
69 +               goto err;
70 +       }
71
72         if (rp->seq_min + delta > rp->seq_max) {
73                 __db_errx(dbenv, "Sequence overflow");
74                 ret = EINVAL;
This page took 0.086584 seconds and 3 git commands to generate.