CN110059108B - Optimization method for mobile-end-oriented object proxy database correlation query - Google Patents
Optimization method for mobile-end-oriented object proxy database correlation query Download PDFInfo
- Publication number
- CN110059108B CN110059108B CN201910348952.5A CN201910348952A CN110059108B CN 110059108 B CN110059108 B CN 110059108B CN 201910348952 A CN201910348952 A CN 201910348952A CN 110059108 B CN110059108 B CN 110059108B
- Authority
- CN
- China
- Prior art keywords
- join
- page
- system table
- cluster
- query
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
The invention discloses an optimization method for mobile-end-object-oriented agent database correlation query, which records the correlation between classes through a deputy system table and points to the last page of a bidirectional pointer cluster to simplify the storage of the redundant agent class number and the source class number of the existing bidirectional pointer cluster. Rearranging the JOIN proxy class bidirectional pointer cluster, storing all related bidirectional pointers of a JOIN proxy class into a cluster, and continuously storing the bidirectional pointers corresponding to a JOIN proxy object in the cluster according to a fixed sequence. Virtual attribute query aiming at the JOIN proxy class is completed through the JOIN proxy class bidirectional pointer cluster, so that the association query efficiency of the mobile terminal object proxy database is improved, and the condition that one proxy object needs to scan a plurality of cluster pages is avoided.
Description
Technical Field
The invention relates to the field of database query processing, in particular to an optimization method for mobile terminal object proxy database association query.
Background
With the rapid development of hardware technology and network technology, the mobile terminal database is widely used, and a user manages the mobile terminal data by adopting the database, so that the storage management logic and the application logic of the data are separated. The current databases are mainly a relational database facing entity query, a k-v type database facing data storage and a graph database facing relational query. The three storage models respectively exert good performance under different requirements of the mobile terminal, but the entity query efficiency and the association query efficiency cannot be considered at the same time, so that the database introduces an object proxy model with both relational model flexibility and object-oriented model flexibility.
The object proxy model regards an objective entity as an object, the objects with the same attributes are abstracted into classes, and the classes can derive four proxy classes: the proxy class can inherit the attribute of one or more source classes, the inherited attribute is called virtual attribute, and the attribute corresponding to the virtual attribute is called real attribute.
The mobile terminal object proxy database adopts five system tables to record class mode information, which comprises the following steps: the class system table records a class number, a class name, a class type and a root page number of a basic class data page; an attribute system table records an attribute number, an attribute name, a class number to which the attribute belongs, an attribute data type, an attribute offset and whether the current attribute is a real attribute; switch System Table: recording the switching operation between the virtual attribute and the real attribute; the deputy _ rule system table records the proxy rules between classes; recording the incidence relation between classes by the deputy system table, wherein the incidence relation comprises a proxy class number DCID, a source class number SCID, a bidirectional pointer cluster page chain head cluster and a corresponding proxy rule number;
the mobile terminal object proxy database records the relationship between objects by adopting a bidirectional pointer system table, each pair of bidirectional pointers records < proxy object number, source object number > (< DeputyObject. Rowid, source _ Object. Rowid >), and the Rowid points to the position of an object storage page, so that one object can be directly obtained through the Rowid without full-class scanning.
Based on the five class mode information system tables and the bidirectional pointer system table, the object proxy model can establish the relation between JOIN proxy class record objects on a plurality of basic classes to complete efficient object association query. The existing bidirectional pointer cluster is clustered based on an agent class number and a source class number (DCID, SCID), and the problems of redundant storage of class numbers and frequent reading of different bidirectional pointer cluster pages by JOIN agent class query exist.
Disclosure of Invention
The technical problem of the invention is solved by the following technical scheme:
the invention provides an optimization method for mobile terminal object-oriented proxy database correlation query, which specifically comprises the following steps:
Step 3, recording class mode information and bidirectional pointer clustering through the steps 1 and 2, and carrying out JOIN agent class D JOIN Virtual attribute query is carried out, virtual attributes are switched according to user requirements, attribute system tables and switch system tables, and a query target virtual attribute set Q is obtained s Querying the corresponding real property condition set as Q s And scanning the bidirectional pointer cluster and the source data, and finally outputting a result set result.
The optimization method for mobile-end-object-oriented proxy database correlation query specifically comprises the following substeps in step 1:
step 1.1, update class System Table as JOIN proxy class D JOIN Distributing an agent class number and writing class related information into a class system table; writing the related attribute information into an attribute system table; writing the real attribute switching calculation operation corresponding to the virtual attribute into a switch system table; is D JOIN Distributing rule _ id by the agent rule, and writing the rule _ id and the agent rule into a deputy _ rule system table;
step 1.2, associating classes in sequence<D JOIN ,C 1 >、<D JOIN ,C 2 >…<D JOIN ,C n >Write the default system table and record the corresponding rule _ id as D JOIN Allocating an empty Page _ Last corresponding to the bidirectional pointer cluster, and writing the Page number of the Page _ Last into all the output system tables<D JOIN ,C i >A corresponding cluster field; will D JOIN And writing the switch system table into the switch operation of the virtual attribute to the real attribute.
The optimization method for mobile terminal object-oriented proxy database association query specifically comprises the following substeps in step 2:
step 2.1, inquiring the deputy system table D JOIN All the association relations<D JOIN ,C i >Obtain cluster field record D JOIN Corresponding to the Last Page of the bidirectional pointer cluster, inquiring the Page _ Last to obtain the current D JOIN Distributing a maximum proxy class number MAX, and if Page _ Last is empty, setting the MAX to be 0;
step 2.2, obtaining C by scanning 1 ×C 2 ×…×C n Query result set JOIN result :{<o 1j ,o 2j ,…,o nj >Therein of<o 1j ,o 2j ,…,o nj >Is represented by C 1 ×C 2 ×…×C n A query result of o ij Indicates belonging to class C i The jth object of o 1i Rowid denotes o ij ;
Step 2.3, obtaining a query result set JOIN through step 2.3 result :{<o 1j ,o 2j ,…,o nj >For each one<o 1j ,o 2j ,…,o nj >Judging whether the current Page _ Last free space is enough, if not, allocating a New clustering Page New _ Page, recording a pointer pointing to Page _ Last in the New _ Page, updating Page _ Last to New _ Page, and turning to the step 2.4; if the space is enough, go to step 2.4;
step 2.4, is D JOIN Object o di Assign a new Rowid of MAX +1,o di Represents D JOIN The ith object of (1). Push button<o 1j ,o 2j ,…,o nj >In sequence respectively<o di .Rowid,o 1j .Rowid>,<o di .Rowid,o 2j .Rowid>,…,<o di .Rowid,o nj .Rowid>Write Page _ Last, MAX + 1o di Object and source object o ij Update the current D JOIN The maximum value MAX of the object number is updated to MAX +1. If the query result set JOIN is present result After the scanning is finished, turning to the step 2.5; if not, returning to the step 2.3;
step 2.5, to this point all D JOIN Corresponding to the written bidirectional pointer cluster, the priority system table is all<D JOIN ,C i >The corresponding cluster field is updated to the current Page _ Last Page number.
The optimization method for mobile-end-object-oriented proxy database correlation query specifically includes the following substeps in step 3:
step 3.1, setting the result set result to be null, switching the virtual attribute according to the user query requirement, the attribute system table and the switch system table, and acquiring a corresponding query target virtual attribute set A d And switched real attribute query condition set Q s ;
Step 3.2, inquiring D in the deputy system table JOIN Corresponding to all the association relations<D JOIN ,C i >Determining the arrangement sequence of the bidirectional pointers in the cluster, and acquiring the Last Page _ Last of the cluster Page according to the cluster field;
step 3.3, continuously scanning forwards from the Page _ Last obtained in the step 3.2, scanning a bidirectional pointer, and acquiring each o di Corresponding to continuous storage<o di .Rowid,o 1j .Rowid>,<o di .Rowid,o 2j .Rowid>,…,<o di .Rowid,o nj .Rowid>Locating the source object data, and judging whether the query condition Q is satisfied s If yes, the method passes through attribute system table and switch system table A d Positioning real attribute, switching and calculating real attribute value, and converting target virtual attribute A d And adding the result value into a result set result until the bidirectional pointer cluster is scanned, and outputting the result set result.
The invention has the following advantages: the method has the advantages that the redundant proxy class numbers and source class numbers of the bidirectional pointers of the object proxy model are reduced, the storage space occupied by the bidirectional pointers is reduced, all the corresponding bidirectional pointers of the JOIN proxy classes are stored in the same cluster according to a fixed sequence, and the extra I/O overhead caused by repeatedly scanning different bidirectional pointer clusters during correlation query is reduced.
Drawings
FIG. 1 is a flow chart of bidirectional pointer clustering according to the present invention.
FIG. 2 is a flow chart of virtual attribute query of a JOIN proxy class established based on a base class according to the present invention.
Fig. 3 is an example of the creation of a JOIN proxy class definition in accordance with an embodiment of the present invention.
FIG. 4 is an example of bidirectional pointer clustering in accordance with an embodiment of the present invention.
Detailed Description
The method flow of the present invention is further specifically described by the following embodiments in conjunction with the accompanying drawings.
Example (b):
the invention provides a method for realizing the association relation query of a mobile terminal object proxy database by using simplified two-way pointer clustering storage. The invention relates to a method for accelerating the correlation query of an object proxy database object of a mobile terminal by establishing a JOIN proxy class based on a plurality of source classes, wherein a plurality of relations exist between objects in an object proxy model, the correlation query of the object proxy database object of the mobile terminal can be accelerated by establishing the JOIN proxy class based on a plurality of source classes. The following will specifically describe the implementation process of the present invention shown in fig. 1 and 2 by using the examples shown in fig. 3 and 4:
the invention firstly writes the JOIN proxy class into the class mode correlation system table through user definition, and fig. 2 shows a JOIN proxy class construction example and shows the mode information thereof, wherein the example comprises two basic classes: the Words class number is 1 and is used for recording word information including word number word, word text word, word type and word meaning; the Pic type number is 2, and different pictures corresponding to each word are recorded, wherein the different pictures comprise a word number word _ id corresponding to the picture and a picture storage path Pic _ url; based on the basic class word, pic establishes a JOIN proxy class word _ Pic with a class number of 3 for storing the association relationship between each word object and the Pic object, and the word _ Pic inherits the word.
Step 1.1, writing word _ Pic type related information into a class system table, writing attribute p _ word and Pic _ url information into an attribute system table, writing virtual attribute word _ pic.p _ word into a switching operation of real attribute word.word, writing virtual attribute word _ pic.pic _ url into a switch system table, and recording an agent rule 'word.word = pic.word _ id' into a default _ rule system table without calculation;
step 1.2, writing the class association relationship into a throughput system table according to the sequence of < word _ Pic, word >, < word _ Pic and Pic, recording that all the proxy rules are 'word, word = Pic, word _ id', allocating an empty Page1, and recording the empty Page address as Page _ Last to be written into the cluster field of < word _ Pic, word >, < word _ Pic and Pic, and representing the Last Page of the word _ Pic related bidirectional pointer cluster.
scanning a throughput system table, acquiring a bidirectional pointer writing sequence < word _ Pic, word >, < word _ Pic, pic > and a cluster field corresponding to the word _ Pic, acquiring a Last Page of a cluster, wherein the Page _ Last is empty, the word _ Pic corresponds to the bidirectional pointer cluster and is empty, and the MAX value of the maximum proxy object number of the word _ Pic is 0;
aiming at the query connection result < 'letter', pic1of 'letter' >, whether the current Page _ Last space is enough or not is judged, and a new Rowid is allocated to the word _ Pic object and is MAX +1:1, <1,rowid of 'letter' >, <1,rowid of pic1> is continuously written into Page _ Last, and the MAX value is updated to 1;
aiming at the query connection result < 'computer', pic2of 'computer' >, judging whether the space of the current Page _ Last is enough or not, distributing a new Page2, and setting a Page2 pointer to point to the current Page _ Last: and Page1, updating Page _ Last to a new Page2, and allocating a new Rowid to the Words _ Pic object, wherein the Rowid is MAX +1:2, <2,rolled of 'computer' >, <2,rolled of pic2> is continuously written to Page _ Last.
So far, the bidirectional pointers are all inserted into clusters corresponding to word _ Pic, and the priority system table < word _ Pic, word >, < word _ Pic, pic > is associated with the cluster field as the current Page _ Last address.
Step 3, recording class mode information through step 1 and step 2, and acquiring a query target virtual attribute set A d Actual attribute query Q after completion of the virtual attribute query s And completing JOIN proxy virtual attribute query based on the bidirectional pointer clustering, and outputting a result set result. Completing the query statement "SELECT" FROM Words _ Pic WHERE Words = 'letter' shown in fig. 4; the method comprises the following specific steps:
step 3.1, setting the result set result to be null, and acquiring a query target virtual attribute A according to the query requirement, the attribute system table and the switch system table d : { p _ word, pic _ url }, converting the virtual attribute query condition into ' p _ word = ' letter ' as the real attribute query condition through switching operation, and obtaining Q s :{Words.word=‘letter’};
Step 3.2, scanning the throughput system table, obtaining the sequence of < word _ Pic, word >, < word _ Pic and Pic, and inquiring the cluster field corresponding to word _ Pic to obtain the Last Page _ Last of the cluster;
step 3.3, gradually scanning the whole cluster from the Page _ Last to obtain a bidirectional pointer<1,Rowid of‘letter’>,<1,Rowidof pic1>Judging whether Q is satisfied s : word = 'letter', meet, inquire the switching operation from real attribute word to virtual attribute p _ word according to the switching expression, switching operation from real attribute picUrl to pic _ url, calculate and obtain the virtual attribute value<‘letter’,pic1>Adding a result set result; continuously scanning the next page of the cluster to obtain a bidirectional pointer<2,Rowid of‘compute’>,<2,Rowid of pic2>Does not satisfy the condition Q s : word = 'letter' }, until the bidirectional pointer cluster is scanned completely, a result set result is output: {<‘letter’,pic1>}。
The specific embodiments described herein are merely illustrative of the spirit of the invention. Those skilled in the art to which the invention relates may modify or supplement the specific embodiments described without departing from the spirit of the invention or exceeding the scope defined by the appended claims.
Claims (4)
1. An optimization method for mobile-end-oriented object proxy database association query is characterized by comprising the following steps:
step 1, based on the basic class C of the existing data 1 ×C 2 ×…×C n Establishing JOIN proxy class D JOIN The method is used for accelerating the association query among various objects; adding JOIN agent type mode information into a class system table, an attribute system table, a switch system table, a default _ rule system table and a default system table;
step 2, passing through the output system table in step 1<D JOIN ,C i >Recording cluster fields, acquiring the Page _ Last of the current corresponding cluster tail Page, and conforming to C according to the fixed sequence 1 ×C 2 ×…×C n Writing the bidirectional pointer of the query result into the bidirectional pointer cluster, and updating all tables of the output system<D JOIN ,C i >A corresponding cluster field;
step 3, recording class mode information and bidirectional pointer clustering through the steps 1 and 2, and carrying out JOIN agent class D JOIN Virtual attribute query is carried out, the virtual attributes are switched according to user requirements, an attribute system table and a switch system table, and a query target virtual attribute set Q is obtained s Querying the corresponding set of real attribute conditions as Q s And scanning the bidirectional pointer cluster and the source data, and finally outputting a result set result.
2. The method for optimizing mobile-end-oriented object proxy database association query as claimed in claim 1, wherein step 1 specifically includes the following substeps:
step 1.1, update class system table as JOIN agent class D JOIN Distributing an agent class number, and writing class related information into a class system table; writing the related attribute information into an attribute system table; writing the virtual attribute corresponding to the real attribute switching calculation operation into a switch system table; is D JOIN Distributing rule _ id by the agent rule, and writing the rule _ id and the agent rule into a deputy _ rule system table;
step 1.2, associating classes in sequence<D JOIN ,C 1 >、<D JOIN ,C 2 >…<D JOIN ,C n >Write the default system table and record the corresponding rule _ id as D JOIN Allocating an empty Page _ Last corresponding to the bidirectional pointer cluster, and writing the Page number of the Page _ Last into all the output system tables<D JOIN ,C i >A corresponding cluster field; will D JOIN And writing the switch system table into the switch operation of the virtual attribute to the real attribute.
3. The method for optimizing mobile-end-object-oriented proxy database association query according to claim 2, wherein the step 2 specifically comprises the following substeps:
step 2.1, query the deputy System Table D JOIN All the association relations<D JOIN ,C i >Obtaining D in the cluster field JOIN Corresponding to the Last Page of the bidirectional pointer cluster, inquiring the Page _ Last to obtain the current D JOIN Distributing a maximum proxy class number MAX, and if Page _ Last is empty, setting the MAX to be 0;
step 2.2, obtaining C by scanning 1 ×C 2 ×…×C n Query result set JOIN result :{<o 1j ,o 2j ,…,o nj >Therein of<o 1j ,o 2j ,…,o nj >Is represented by C 1 ×C 2 ×…×C n A query result of o ij Indicates belonging to class C i The jth object of (1);
step 2.3, obtaining a query result set JOIN through step 2.2 result :{<o 1j ,o 2j ,…,o nj >For each of them }<o 1j ,o 2j ,…,o nj >Judging whether the current Page _ Last free space is enough, if not, allocating a New clustering Page New _ Page, recording a pointer pointing to Page _ Last in the New _ Page, updating Page _ Last to New _ Page, and turning to the step 2.4; if the space is enough, go to step 2.4;
step 2.4, as D JOIN Object o di Assign a new Rowid is MAX +1,o di Is shown by D JOIN The ith object of (1); push button<o 1j ,o 2j ,…,o nj >In sequence respectively<o di .Rowid,o 1j .Rowid>,<o di .Rowid,o 2j .Rowid>,…,<o di .Rowid,o nj .Rowid>Write Page _ Last, MAX + 1o di Object and source object o ij Update the current D JOIN The maximum value MAX of the object number is updated to MAX +1; if the query result set JOIN is present result After the scanning is finished, turning to the step 2.5; if not, returning to the step 2.3;
step 2.5, to this point all D JOIN Corresponding to the written bidirectional pointer cluster, the priority system table is all<D JOIN ,C i >The corresponding cluster field is updated to the current Page _ Last Page number.
4. The method for optimizing mobile-end-object-oriented proxy database association query according to claim 3, wherein step 3 specifically includes the following substeps:
step 3.1, setting the result set result to be null, switching the virtual attributes according to the user query requirement, attribute system table and switch system table, and acquiring a corresponding query target virtual attribute set A d And the switched real attribute query condition set Q s ;
Step 3.2, inquiring D in the deputy system table JOIN Corresponding to all the association relations<D JOIN ,C i >Determining the arrangement sequence of the bidirectional pointers in the cluster, and acquiring the Last Page _ Last of the cluster Page according to the cluster field;
step 3.3, continuously scanning the Page _ Last obtained in the step 3.2 forward, scanning the bidirectional pointer, and obtaining each o di Corresponding to continuous storage<o di .Rowid,o 1j .Rowid>,<o di .Rowid,o 2j .Rowid>,…,<o di .Rowid,o nj .Rowid>Locating the source object data, and judging whether the query condition Q is satisfied s If yes, the data is passed through an attribute system table and switchh System Table A d Positioning real attribute, switching and calculating real attribute value, and converting target virtual attribute A d And adding the result value into a result set result until the bidirectional pointer cluster is scanned, and outputting the result set result.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910348952.5A CN110059108B (en) | 2019-04-28 | 2019-04-28 | Optimization method for mobile-end-oriented object proxy database correlation query |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910348952.5A CN110059108B (en) | 2019-04-28 | 2019-04-28 | Optimization method for mobile-end-oriented object proxy database correlation query |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110059108A CN110059108A (en) | 2019-07-26 |
CN110059108B true CN110059108B (en) | 2022-11-29 |
Family
ID=67319455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910348952.5A Active CN110059108B (en) | 2019-04-28 | 2019-04-28 | Optimization method for mobile-end-oriented object proxy database correlation query |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110059108B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111797114B (en) * | 2020-06-24 | 2021-08-31 | 武汉大学 | Multi-path cross-class query and optimization method in object proxy database |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999009494A1 (en) * | 1997-08-14 | 1999-02-25 | Aoraki Corporation Limited | Relational database coexistence in object oriented environments |
CN101216844B (en) * | 2008-01-03 | 2010-06-09 | 彭智勇 | Database cross-class inquiry method |
CN101241503B (en) * | 2008-01-03 | 2011-09-07 | 彭智勇 | Database personalized method |
CN103136374B (en) * | 2013-03-25 | 2015-12-23 | 武汉大学 | A kind of Schema normalization method of object broker database |
CN103218439B (en) * | 2013-04-22 | 2016-06-08 | 武汉大学 | A kind of empty attribute query optimization method of object-oriented proxy database |
-
2019
- 2019-04-28 CN CN201910348952.5A patent/CN110059108B/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN110059108A (en) | 2019-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11468027B2 (en) | Method and apparatus for providing efficient indexing and computer program included in computer readable medium therefor | |
US7707230B1 (en) | Methods and structure for use of an auxiliary database for importation of data into a target database | |
CN112363979B (en) | Distributed index method and system based on graph database | |
CN107329987A (en) | A kind of search system based on mongo databases | |
CN104765731A (en) | Database query optimization method and equipment | |
US11151138B2 (en) | Computer program for processing a pivot query | |
CN103714163A (en) | Pattern management method and system of NoSQL database | |
CN111627552A (en) | Medical streaming data blood relationship analysis and storage method and device | |
JP2008537827A (en) | Hierarchical database relational queries | |
CN110059108B (en) | Optimization method for mobile-end-oriented object proxy database correlation query | |
US7984072B2 (en) | Three-dimensional data structure for storing data of multiple domains and the management thereof | |
CN114860727A (en) | Zipper watch updating method and device | |
CN104794567B (en) | A kind of Infectious Diseases Data management method based on HBase | |
CN111414527B (en) | Query method, device and storage medium for similar items | |
WO2021120489A1 (en) | Adaptive fault tolerance processing method and system for spatial information data | |
CN116089501B (en) | Digital sharing platform order data statistical query method | |
CN110321388B (en) | Quick sequencing query method and system based on Greenplus | |
CN116450660A (en) | Method and device for processing primary key conflict in data synchronization | |
CN115374121A (en) | Database index generation method, machine-readable storage medium and computer equipment | |
CN117540056B (en) | Method, device, computer equipment and storage medium for data query | |
JP2001067369A (en) | Information retrieval system, information retrieval method and recording medium recording information retrieval probram | |
CN118210809B (en) | Object definition method, system, equipment and medium based on ER information | |
CN112286995B (en) | Data analysis method, device, server, system and storage medium | |
CN116680299B (en) | Database query method, system, storage medium and device | |
US20240289386A1 (en) | Graph data management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |