]> git.pld-linux.org Git - packages/db4.7.git/blame - patch.4.7.25.1
- 2 patches from upstream
[packages/db4.7.git] / patch.4.7.25.1
CommitLineData
00c6a2e7
AM
1*** sequence/sequence.c.orig 2008-05-05 13:25:09.000000000 -0700
2--- sequence/sequence.c 2008-08-15 09:58:46.000000000 -0700
3***************
4*** 187,193 ****
5 if ((ret = __db_get_flags(dbp, &tflags)) != 0)
6 goto err;
7
8! if (DB_IS_READONLY(dbp)) {
9 ret = __db_rdonly(dbp->env, "DB_SEQUENCE->open");
10 goto err;
11 }
12--- 187,197 ----
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->env, "DB_SEQUENCE->open");
22 goto err;
23 }
24***************
25*** 244,249 ****
26--- 248,258 ----
27 if ((ret != DB_NOTFOUND && ret != DB_KEYEMPTY) ||
28 !LF_ISSET(DB_CREATE))
29 goto err;
30+ if (IS_REP_CLIENT(env) &&
31+ !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
32+ ret = __db_rdonly(env, "DB_SEQUENCE->open");
33+ goto err;
34+ }
35 ret = 0;
36
37 rp = &seq->seq_record;
38***************
39*** 296,302 ****
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 (!F_ISSET(env, ENV_LITTLEENDIAN)) {
45 if (IS_DB_AUTO_COMMIT(dbp, txn)) {
46 if ((ret =
47--- 305,316 ----
48 */
49 rp = seq->seq_data.data;
50 if (rp->seq_version == DB_SEQUENCE_OLDVER) {
51! oldver: if (IS_REP_CLIENT(env) &&
52! !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
53! ret = __db_rdonly(env, "DB_SEQUENCE->open");
54! goto err;
55! }
56! rp->seq_version = DB_SEQUENCE_VERSION;
57 if (!F_ISSET(env, ENV_LITTLEENDIAN)) {
58 if (IS_DB_AUTO_COMMIT(dbp, txn)) {
59 if ((ret =
60***************
61*** 707,712 ****
62--- 721,733 ----
63
64 MUTEX_LOCK(env, seq->mtx_seq);
65
66+ if (handle_check && IS_REP_CLIENT(env) &&
67+ !F_ISSET(dbp, DB_AM_NOT_DURABLE)) {
68+ ret = __db_rdonly(env, "DB_SEQUENCE->get");
69+ goto err;
70+ }
71+
72+
73 if (rp->seq_min + delta > rp->seq_max) {
74 __db_errx(env, "Sequence overflow");
75 ret = EINVAL;
This page took 0.068867 seconds and 4 git commands to generate.