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