1e41f4b71Sopenharmony_ci
2e41f4b71Sopenharmony_ci# Distributed Data Management Subsystem Changelog
3e41f4b71Sopenharmony_ci
4e41f4b71Sopenharmony_ci## cl.distributeddatamgr.1 Replacement of context with a context Without the Optional Identifier
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ci**Change Impact**
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ciFor applications developed based on earlier versions, use SDK API version 10 when **context** is used.
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci**Key API/Component Changes**
11e41f4b71Sopenharmony_ci
12e41f4b71Sopenharmony_ciDeleted the following:
13e41f4b71Sopenharmony_ci
14e41f4b71Sopenharmony_ci ```ts
15e41f4b71Sopenharmony_ci    /**
16e41f4b71Sopenharmony_ci     * Indicates datashare extension ability context.
17e41f4b71Sopenharmony_ci     *
18e41f4b71Sopenharmony_ci     * @type ?{ ExtensionContext }
19e41f4b71Sopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.DataShare.Provider
20e41f4b71Sopenharmony_ci     * @systemapi
21e41f4b71Sopenharmony_ci     * @StageModelOnly
22e41f4b71Sopenharmony_ci     * @since 9
23e41f4b71Sopenharmony_ci     */
24e41f4b71Sopenharmony_ci    context?: ExtensionContext;
25e41f4b71Sopenharmony_ci ```
26e41f4b71Sopenharmony_ciAdded the following:
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci ```ts
29e41f4b71Sopenharmony_ci    /**
30e41f4b71Sopenharmony_ci     * Indicates datashare extension ability context.
31e41f4b71Sopenharmony_ci     *
32e41f4b71Sopenharmony_ci     * @type { ExtensionContext }
33e41f4b71Sopenharmony_ci     * @syscap SystemCapability.DistributedDataManager.DataShare.Provider
34e41f4b71Sopenharmony_ci     * @systemapi
35e41f4b71Sopenharmony_ci     * @StageModelOnly
36e41f4b71Sopenharmony_ci     * @since 10
37e41f4b71Sopenharmony_ci     */
38e41f4b71Sopenharmony_ci    context: ExtensionContext;
39e41f4b71Sopenharmony_ci ```
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ci## cl.distributeddatamgr.2 Change of the Return Value Type of Function Pointer Variables in the OH_Predicates Struct from OH_Predicates to OH_Predicates *
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ci**Change Impact**
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ciThis change is incompatible with earlier versions. You need to use the new function pointer variables in the **OH_Predicates** struct.
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci**Key API/Component Changes**
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ciBefore the change:
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci ```ts
52e41f4b71Sopenharmony_ci    OH_Predicates (*equalTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
53e41f4b71Sopenharmony_ci    OH_Predicates (*notEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
54e41f4b71Sopenharmony_ci    OH_Predicates (*beginWrap)(OH_Predicates *predicates);
55e41f4b71Sopenharmony_ci    OH_Predicates (*endWrap)(OH_Predicates *predicates);
56e41f4b71Sopenharmony_ci    OH_Predicates (*orOperate)(OH_Predicates *predicates);
57e41f4b71Sopenharmony_ci    OH_Predicates (*andOperate)(OH_Predicates *predicates);
58e41f4b71Sopenharmony_ci    OH_Predicates (*isNull)(OH_Predicates *predicates, const char *field);
59e41f4b71Sopenharmony_ci    OH_Predicates (*isNotNull)(OH_Predicates *predicates, const char *field);
60e41f4b71Sopenharmony_ci    OH_Predicates (*like)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
61e41f4b71Sopenharmony_ci    OH_Predicates (*between)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
62e41f4b71Sopenharmony_ci    OH_Predicates (*notBetween)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
63e41f4b71Sopenharmony_ci    OH_Predicates (*greaterThan)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
64e41f4b71Sopenharmony_ci    OH_Predicates (*lessThan)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
65e41f4b71Sopenharmony_ci    OH_Predicates (*greaterThanOrEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
66e41f4b71Sopenharmony_ci    OH_Predicates (*lessThanOrEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
67e41f4b71Sopenharmony_ci    OH_Predicates (*orderBy)(OH_Predicates *predicates, const char *field, OH_OrderType type);
68e41f4b71Sopenharmony_ci    OH_Predicates (*distinct)(OH_Predicates *predicates);
69e41f4b71Sopenharmony_ci    OH_Predicates (*limit)(OH_Predicates *predicates, unsigned int value);
70e41f4b71Sopenharmony_ci    OH_Predicates (*offset)(OH_Predicates *predicates, unsigned int rowOffset);
71e41f4b71Sopenharmony_ci    OH_Predicates (*groupBy)(OH_Predicates *predicates, char const *const *fields, int length);
72e41f4b71Sopenharmony_ci    OH_Predicates (*in)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
73e41f4b71Sopenharmony_ci    OH_Predicates (*notIn)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
74e41f4b71Sopenharmony_ci    OH_Predicates (*clear)(OH_Predicates *predicates);
75e41f4b71Sopenharmony_ci ```
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ciAfter the change:
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ci ```ts
80e41f4b71Sopenharmony_ci   OH_Predicates *(*equalTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
81e41f4b71Sopenharmony_ci   OH_Predicates *(*notEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
82e41f4b71Sopenharmony_ci   OH_Predicates *(*beginWrap)(OH_Predicates *predicates);
83e41f4b71Sopenharmony_ci   OH_Predicates *(*endWrap)(OH_Predicates *predicates);
84e41f4b71Sopenharmony_ci   OH_Predicates *(*orOperate)(OH_Predicates *predicates);
85e41f4b71Sopenharmony_ci   OH_Predicates *(*andOperate)(OH_Predicates *predicates);
86e41f4b71Sopenharmony_ci   OH_Predicates *(*isNull)(OH_Predicates *predicates, const char *field);
87e41f4b71Sopenharmony_ci   OH_Predicates *(*isNotNull)(OH_Predicates *predicates, const char *field);
88e41f4b71Sopenharmony_ci   OH_Predicates *(*like)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
89e41f4b71Sopenharmony_ci   OH_Predicates *(*between)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
90e41f4b71Sopenharmony_ci   OH_Predicates *(*notBetween)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
91e41f4b71Sopenharmony_ci   OH_Predicates *(*greaterThan)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
92e41f4b71Sopenharmony_ci   OH_Predicates *(*lessThan)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
93e41f4b71Sopenharmony_ci   OH_Predicates *(*greaterThanOrEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
94e41f4b71Sopenharmony_ci   OH_Predicates *(*lessThanOrEqualTo)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
95e41f4b71Sopenharmony_ci   OH_Predicates *(*orderBy)(OH_Predicates *predicates, const char *field, OH_OrderType type);
96e41f4b71Sopenharmony_ci   OH_Predicates *(*distinct)(OH_Predicates *predicates);
97e41f4b71Sopenharmony_ci   OH_Predicates *(*limit)(OH_Predicates *predicates, unsigned int value);
98e41f4b71Sopenharmony_ci   OH_Predicates *(*offset)(OH_Predicates *predicates, unsigned int rowOffset);
99e41f4b71Sopenharmony_ci   OH_Predicates *(*groupBy)(OH_Predicates *predicates, char const *const *fields, int length);
100e41f4b71Sopenharmony_ci   OH_Predicates *(*in)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
101e41f4b71Sopenharmony_ci   OH_Predicates *(*notIn)(OH_Predicates *predicates, const char *field, OH_VObject *valueObject);
102e41f4b71Sopenharmony_ci   OH_Predicates *(*clear)(OH_Predicates *predicates);
103e41f4b71Sopenharmony_ci ```
104e41f4b71Sopenharmony_ci
105e41f4b71Sopenharmony_ci**Adaptation Guide**
106e41f4b71Sopenharmony_ci
107e41f4b71Sopenharmony_ciThe sample code is as follows:
108e41f4b71Sopenharmony_ci
109e41f4b71Sopenharmony_ciSample code before the change:
110e41f4b71Sopenharmony_ci
111e41f4b71Sopenharmony_ci```
112e41f4b71Sopenharmony_cipredicates->beginWrap(predicates).equalTo(predicates, "data1", valueObject).orOperate(predicates);
113e41f4b71Sopenharmony_ci```
114e41f4b71Sopenharmony_ci
115e41f4b71Sopenharmony_ciSample code after the change:
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ci```
118e41f4b71Sopenharmony_cipredicates->beginWrap(predicates)->equalTo(predicates, "data1", valueObject)->orOperate(predicates);
119e41f4b71Sopenharmony_ci```
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci## cl.distributeddatamgr.3 Change of the Error Codes in the OH_Rdb_ErrCode Struct
122e41f4b71Sopenharmony_ci
123e41f4b71Sopenharmony_ci**Change Impact**
124e41f4b71Sopenharmony_ci
125e41f4b71Sopenharmony_ciChanged **RDB_ERR_INVALID_ARGS** to **RDB_E_INVALID_ARGS**, and **RDB_ERR_OK** to **RDB_OK**, and added error codes.
126e41f4b71Sopenharmony_ci
127e41f4b71Sopenharmony_ci**Key API/Component Changes**
128e41f4b71Sopenharmony_ci
129e41f4b71Sopenharmony_ciBefore the change:
130e41f4b71Sopenharmony_ci
131e41f4b71Sopenharmony_ci ```ts
132e41f4b71Sopenharmony_ci  RDB_ERR_INVALID_ARGS = -2,
133e41f4b71Sopenharmony_ci  RDB_ERR = -1,
134e41f4b71Sopenharmony_ci  RDB_ERR_OK = 0
135e41f4b71Sopenharmony_ci ```
136e41f4b71Sopenharmony_ci
137e41f4b71Sopenharmony_ciAfter the change:
138e41f4b71Sopenharmony_ci
139e41f4b71Sopenharmony_ci ```ts
140e41f4b71Sopenharmony_ci    RDB_ERR = -1,
141e41f4b71Sopenharmony_ci    RDB_OK = 0,
142e41f4b71Sopenharmony_ci    E_BASE = 14800000,
143e41f4b71Sopenharmony_ci    RDB_E_NOT_SUPPORTED = 801,
144e41f4b71Sopenharmony_ci    RDB_E_ERROR = E_BASE,
145e41f4b71Sopenharmony_ci    RDB_E_INVALID_ARGS = (E_BASE + 1),
146e41f4b71Sopenharmony_ci    RDB_E_CANNOT_UPDATE_READONLY = (E_BASE + 2),
147e41f4b71Sopenharmony_ci    RDB_E_REMOVE_FILE = (E_BASE + 3),
148e41f4b71Sopenharmony_ci    RDB_E_EMPTY_TABLE_NAME = (E_BASE + 5),
149e41f4b71Sopenharmony_ci    RDB_E_EMPTY_VALUES_BUCKET = (E_BASE + 6),
150e41f4b71Sopenharmony_ci    RDB_E_EXECUTE_IN_STEP_QUERY = (E_BASE + 7),
151e41f4b71Sopenharmony_ci    RDB_E_INVALID_COLUMN_INDEX = (E_BASE + 8),
152e41f4b71Sopenharmony_ci    RDB_E_INVALID_COLUMN_TYPE = (E_BASE + 9),
153e41f4b71Sopenharmony_ci    RDB_E_EMPTY_FILE_NAME = (E_BASE + 10),
154e41f4b71Sopenharmony_ci    RDB_E_INVALID_FILE_PATH = (E_BASE + 11),
155e41f4b71Sopenharmony_ci    RDB_E_TRANSACTION_IN_EXECUTE = (E_BASE + 12),
156e41f4b71Sopenharmony_ci    RDB_E_INVALID_STATEMENT = (E_BASE + 13),
157e41f4b71Sopenharmony_ci    RDB_E_EXECUTE_WRITE_IN_READ_CONNECTION = (E_BASE + 14),
158e41f4b71Sopenharmony_ci    RDB_E_BEGIN_TRANSACTION_IN_READ_CONNECTION = (E_BASE + 15),
159e41f4b71Sopenharmony_ci    RDB_E_NO_TRANSACTION_IN_SESSION = (E_BASE + 16),
160e41f4b71Sopenharmony_ci    RDB_E_MORE_STEP_QUERY_IN_ONE_SESSION = (E_BASE + 17),
161e41f4b71Sopenharmony_ci    RDB_E_NO_ROW_IN_QUERY = (E_BASE + 18),
162e41f4b71Sopenharmony_ci    RDB_E_INVALID_BIND_ARGS_COUNT = (E_BASE + 19),
163e41f4b71Sopenharmony_ci    RDB_E_INVALID_OBJECT_TYPE = (E_BASE + 20),
164e41f4b71Sopenharmony_ci    RDB_E_INVALID_CONFLICT_FLAG = (E_BASE + 21),
165e41f4b71Sopenharmony_ci    RDB_E_HAVING_CLAUSE_NOT_IN_GROUP_BY = (E_BASE + 22),
166e41f4b71Sopenharmony_ci    RDB_E_NOT_SUPPORTED_BY_STEP_RESULT_SET = (E_BASE + 23),
167e41f4b71Sopenharmony_ci    RDB_E_STEP_RESULT_SET_CROSS_THREADS = (E_BASE + 24),
168e41f4b71Sopenharmony_ci    RDB_E_STEP_RESULT_QUERY_NOT_EXECUTED = (E_BASE + 25),
169e41f4b71Sopenharmony_ci    RDB_E_STEP_RESULT_IS_AFTER_LAST = (E_BASE + 26),
170e41f4b71Sopenharmony_ci    RDB_E_STEP_RESULT_QUERY_EXCEEDED = (E_BASE + 27),
171e41f4b71Sopenharmony_ci    RDB_E_STATEMENT_NOT_PREPARED = (E_BASE + 28),
172e41f4b71Sopenharmony_ci    RDB_E_EXECUTE_RESULT_INCORRECT = (E_BASE + 29),
173e41f4b71Sopenharmony_ci    RDB_E_STEP_RESULT_CLOSED = (E_BASE + 30),
174e41f4b71Sopenharmony_ci    RDB_E_RELATIVE_PATH = (E_BASE + 31),
175e41f4b71Sopenharmony_ci    RDB_E_EMPTY_NEW_ENCRYPT_KEY = (E_BASE + 32),
176e41f4b71Sopenharmony_ci    RDB_E_CHANGE_UNENCRYPTED_TO_ENCRYPTED = (E_BASE + 33),
177e41f4b71Sopenharmony_ci    RDB_E_CHANGE_ENCRYPT_KEY_IN_BUSY = (E_BASE + 34),
178e41f4b71Sopenharmony_ci    RDB_E_STEP_STATEMENT_NOT_INIT = (E_BASE + 35),
179e41f4b71Sopenharmony_ci    RDB_E_NOT_SUPPORTED_ATTACH_IN_WAL_MODE = (E_BASE + 36),
180e41f4b71Sopenharmony_ci    RDB_E_CREATE_FOLDER_FAIL = (E_BASE + 37),
181e41f4b71Sopenharmony_ci    RDB_E_SQLITE_SQL_BUILDER_NORMALIZE_FAIL = (E_BASE + 38),
182e41f4b71Sopenharmony_ci    RDB_E_STORE_SESSION_NOT_GIVE_CONNECTION_TEMPORARILY = (E_BASE + 39),
183e41f4b71Sopenharmony_ci    RDB_E_STORE_SESSION_NO_CURRENT_TRANSACTION = (E_BASE + 40),
184e41f4b71Sopenharmony_ci    RDB_E_NOT_SUPPORT = (E_BASE + 41),
185e41f4b71Sopenharmony_ci    RDB_E_INVALID_PARCEL = (E_BASE + 42),
186e41f4b71Sopenharmony_ci    RDB_E_QUERY_IN_EXECUTE = (E_BASE + 43),
187e41f4b71Sopenharmony_ci    RDB_E_SET_PERSIST_WAL = (E_BASE + 44),
188e41f4b71Sopenharmony_ci    RDB_E_DB_NOT_EXIST = (E_BASE + 45),
189e41f4b71Sopenharmony_ci    RDB_E_ARGS_READ_CON_OVERLOAD = (E_BASE + 46),
190e41f4b71Sopenharmony_ci    RDB_E_WAL_SIZE_OVER_LIMIT = (E_BASE + 47),
191e41f4b71Sopenharmony_ci    RDB_E_CON_OVER_LIMIT = (E_BASE + 48)
192e41f4b71Sopenharmony_ci ```
193