US7747635B1 - Automatically generating efficient string matching code - Google Patents
Automatically generating efficient string matching code Download PDFInfo
- Publication number
- US7747635B1 US7747635B1 US11/019,014 US1901404A US7747635B1 US 7747635 B1 US7747635 B1 US 7747635B1 US 1901404 A US1901404 A US 1901404A US 7747635 B1 US7747635 B1 US 7747635B1
- Authority
- US
- United States
- Prior art keywords
- input string
- character
- string
- strings
- target strings
- 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, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
Definitions
- Sun Sun Microsystems
- Java J2ME
- Sun logo are trademarks or registered trademarks of Sun Microsystems, Inc., in the United States of America and other countries. All other company and product names may be trademarks of their respective companies.
- Directory appendix containing file 50992.hex of Oct. 13, 2004 and of length 103,663 bytes.
- the file contains three computer program listings, which are referred to herein as Listings 1-3.
- the material on the compact discs is incorporated herein by reference.
- This invention relates to user interfaces for computer systems. More particularly, this invention relates to matching a client-supplied string to requirements of a software component of a computer system.
- a calendar interface may provide several predefined strings that can be used to specify month names. Clients provide one of these predefined strings when calling the relevant methods of the calendar object. Internally, the calendar implementation must determine which, if any, of the predefined strings is matched by the client-supplied string.
- One approach to matching strings more efficiently involves pre-placement of candidate strings into a hash table at runtime, before the desired lookup is performed. A lookup of a client-supplied string in the hash table according to its hash value is then performed. This approach incurs a runtime performance cost to initialize the hashtable and a memory cost to store the hashtable.
- Lexical analyzers such as the program lex in the Unix environment have long been available for matching strings. Lex matches the characters of strings sequentially. Sequential matching cannot be implemented efficiently in all programming environments. For example, in some versions of Java 2 Micro Edition (J2ME), access to individual characters of a string requires one method call per character, which is inefficient. A need remains for a more efficient technique for rejecting invalid data during string matching.
- J2ME Java 2 Micro Edition
- a tool which generates source code for matching a client-supplied string that is supplied at runtime against a set of candidate strings.
- the tool employs an improved, efficient matching technique, based on the following three principles:
- the client provides a configuration that identifies a set of possible strings. Based on the configuration, the tool automatically generates code to identify a matching string among the possibilities, utilizing an algorithm that is maximally efficient at runtime, without impacting startup time or memory usage.
- the process of writing and modifying efficient code to identify which of a given set of candidates matches a string in question is automated. Previously this needed to be done by hand, after analyzing the set of possible strings.
- the invention provides a computer-implemented method of string matching, which is carried out by establishing partitions of a predetermined set of first strings, wherein each of the partitions includes a subset of the first strings, each member of the subset having a common string length.
- the method is further carried out by establishing subpartitions of the partitions according to character positions of the first strings thereof, such that each of the subpartitions contains exactly one of the first strings, matching a length of a second string with the common string length of one of the partitions, and identifying the second string with one of the first strings by matching characters of the first strings of the subpartitions of the one partition with like-positioned characters of the second string.
- the step of establishing subpartitions is performed recursively.
- a first iteration of the step of establishing subpartitions is performed by identifying a best character position, as defined below, of the subset of the set of first strings in each of the partitions, and establishing the subpartitions at the best character position, respectively.
- identifying the best character position includes determining a number of subpartitions of the subset at each character index position thereof.
- matching the characters of the first strings is initially performed at a best character position of the set of first strings.
- the invention provides a computer software product, including a computer-readable medium in which computer program instructions are stored, which instructions, when read by a computer, cause the computer to perform a method for string matching, which is carried out by establishing partitions of a predetermined set of first strings, wherein each of the partitions includes a subset of the first strings, each member of the subset having a common string length.
- the method is further carried out by establishing subpartitions of the partitions according to character positions of the first strings thereof, such that each of the subpartitions contains exactly one of the first strings, matching a length of a second string with the common string length of one of the partitions, and identifying the second string with one of the first strings by matching characters of the first strings of the subpartitions of the one partition with like-positioned characters of the second string.
- the invention provides a data processing system, including a computer in which computer program instructions are stored, which instructions, when read by the computer, cause the computer to perform a method for string matching, which is carried out by establishing partitions of a predetermined set of first strings, wherein each of the partitions includes a subset of the first strings, each member of the subset having a common string length.
- the method is further carried out by establishing subpartitions of the partitions according to character positions of the first strings thereof, such that each of the subpartitions contains exactly one of the first strings, matching a length of a second string with the common string length of one of the partitions, and identifying the second string with one of the first strings by matching characters of the first strings of the subpartitions of the one partition with like-positioned characters of the second string.
- the invention provides a computer-implemented method of string matching, which is carried out by automatically generating computer-readable instructions, which when read by a computer, cause the computer to perform the steps of establishing partitions of a predetermined set of first strings, wherein each of the partitions includes a subset of the first strings.
- the first strings in each subset have a common string length.
- the computer is further instructed to establish subpartitions of the partitions according to character positions of the first strings thereof, such that each of the subpartitions contains exactly one of the first strings
- the computer is further instructed to include the computer-readable instructions in a computer program, execute the computer program, and during runtime of the computer program, accepting a second string during runtime of the computer program, matching a length of the second string with the common string length of one of the partitions, and matching characters of the first strings of the subpartitions of the one partition with like-positioned characters of the second string to identify one of the first strings with the second string.
- the invention provides a computer software product, including a computer-readable medium in which first instructions are stored, which first instructions, when read by a computer, cause the computer to perform a method for string matching, which is carried out by automatically generating second computer-readable instructions, which when read by a computer, cause the computer to perform the steps of establishing partitions of a predetermined set of first strings, wherein each of the partitions includes a subset of the first strings.
- the first strings in each subset have a common string length.
- the computer is further instructed to establish subpartitions of the partitions according to character positions of the first strings thereof, such that each of the subpartitions contains exactly one of the first strings
- the computer is further instructed to include the second computer-readable instructions in a computer program, execute the computer program, and during runtime of the computer program, accepting a second string during runtime of the computer program, matching a length of the second string with the common string length of one of the partitions, and matching characters of the first strings of the subpartitions of the one partition with like-positioned characters of the second string to identify one of the first strings with the second string.
- the invention provides a data processing system including a computer in which first computer program instructions are stored, which first instructions, when read by the computer, cause the computer to perform a method for string matching, which is carried out by automatically generating second computer-readable instructions, which when read by a computer, cause the computer to perform the steps of establishing partitions of a predetermined set of first strings, wherein each of the partitions includes a subset of the first strings.
- the first strings in each subset have a common string length.
- the computer is further instructed to establish subpartitions of the partitions according to character positions of the first strings thereof, such that each of the subpartitions contains exactly one of the first strings
- the computer is further instructed to include the second computer-readable instructions in a computer program, execute the computer program, and during runtime of the computer program, accepting a second string during runtime of the computer program, matching a length of the second string with the common string length of one of the partitions, and matching characters of the first strings of the subpartitions of the one partition with like-positioned characters of the second string to identify one of the first strings with the second string.
- the invention provides a computer-implemented method of string matching, which is carried out by receiving a set of reference strings, separating the set, using a computer under control of program instructions, into partitions according to the lengths of the reference strings. The method is further carried out using the computer under control of the program instructions, to determine a sorting criterion within each of the partitions according to a position of one of the characters in each of the reference strings in each of the partitions, and to generate computer software code for identifying an input string with one of the reference strings according to the partitions and to the sorting criterion within each of the partitions.
- One aspect of the method includes forming subpartitions of each of the partitions using the sorting criterion, wherein the computer software code includes code for identifying the input string with one of the reference strings in one of the subpartitions.
- each of the subpartitions contains exactly one of the reference strings.
- the invention provides a computer software product, including a computer-readable medium in which computer program instructions are stored, which instructions, when read by a computer, cause the computer to perform a method of string matching, which is carried out by receiving a set of reference strings, separating the set, using a computer under control of program instructions, into partitions according to the lengths of the reference strings.
- the method is further carried out using the computer under control of the program instructions, to determine a sorting criterion within each of the partitions according to a position of one of the characters in each of the reference strings in each of the partitions, and to generate computer software code for identifying an input string with one of the reference strings according to the partitions and to the sorting criterion within each of the partitions.
- the invention provides a data processing system including a computer in which computer program instructions are stored, which instructions, cause the computer to perform a method of string matching, which is carried out by receiving a set of reference strings, separating the set, using a computer under control of program instructions, into partitions according to the lengths of the reference strings.
- the method is further carried out using the computer under control of the program instructions, to determine a sorting criterion within each of the partitions according to a position of one of the characters in each of the reference strings in each of the partitions, and to generate computer software code for identifying an input string with one of the reference strings according to the partitions and to the sorting criterion within each of the partitions.
- FIG. 1 is a block diagram of a data processing system in which the principles of the invention can be applied;
- FIG. 2 is a flow chart illustrating a first phase of a method of runtime string matching in accordance with a disclosed embodiment of the invention.
- FIG. 3 is a flow chart illustrating a second phase of a method of runtime string matching in accordance with a disclosed embodiment of the invention.
- Software programming code which embodies aspects of the present invention, is typically maintained in permanent storage, such as a computer readable medium.
- a computer readable medium In a client-server environment, such software programming code may be stored on a client or a server.
- the software programming code may be embodied on any of a variety of known media for use with a data processing system. This includes, but is not limited to, magnetic and optical storage devices such as disk drives, magnetic tape, compact discs (CD's), digital video discs (DVD's), and computer instruction signals embodied in a transmission medium with or without a carrier wave upon which the signals are modulated.
- the transmission medium may include a communications network, such as the Internet.
- the invention may be embodied in computer software, the functions necessary to implement the invention may alternatively be embodied in part or in whole using hardware components such as application-specific integrated circuits or other hardware, or some combination of hardware components and software.
- FIG. 1 is a block diagram of a system 10 in which the principles of the invention can be applied.
- the system 10 can be any type of computer system. It includes a computing device 12 , such as a personal computer or workstation.
- the system 10 can be a standalone system, or may be a component of a networked environment.
- client input is permitted in order to modify the operation of programs that are executing in the system.
- a client interface to the system 10 is realized by a monitor 14 and an input device, which is typically a keyboard 16 for use by an operator 18 .
- the first character ‘D’ of the string may be evaluated. Comparisons with possibilities that do not possess a first character ‘D’ can be avoided, because they are guaranteed not to match the client-supplied string.
- a software tool 24 which identifies an efficient algorithm with which to search the set of strings 22 for a match with the input string 20 , based on the lengths and the characters at different positions of the members of the set of strings 22 . After analyzing the set of possible strings to determine the best algorithm, the tool generates source code that implements this algorithm. An example is given in Listing 3.
- FIG. 2 is a flow chart illustrating a first phase of a method of runtime string matching in accordance with a disclosed embodiment of the invention.
- the process steps are shown in a particular sequence in FIG. 2 for clarity of presentation. However, it will be evident that some of them can be performed in parallel, asynchronously, or in different orders. Furthermore, those skilled in the art will appreciate that certain sequences shown in FIG. 2 can conveniently by implemented using recursion. Alternatively, non-recursive techniques may be employed for greater computational efficiency.
- a predetermined set of possible strings to be matched to a client input string is prepared and configured in a computer application by known methods.
- the set could be memorized in a drop-down listbox or similar control.
- the set could be established as a simple array of strings.
- step 28 introduces a sequence in which the set of strings that was produced in initial step 26 is analyzed recursively. First, partitions of the set of strings are created, based on their lengths.
- a partition is selected from the partitions by length that were created in step 28 .
- the subset of strings in the partition that was selected at step 30 are searched to determine the character position (i.e., character index position or character index) within them that would further partition the strings into the most number of subpartitions.
- This character position is recorded, and is referred to herein as a “best-character position”. It may be different for different partitions of the set of strings. This position is determined for each partition by iteratively computing the number of subpartitions of the subset at each character index position, and selecting the character index corresponding to the largest number of subpartitions as the best character position.
- step 34 subpartitions of the partition that was analyzed in step 32 are created according to the character position that was determined.
- step 36 one of the subpartitions created at step 34 is selected.
- step 38 a determination is made whether the current subpartition that was selected in step 36 contains more than one string.
- step 38 determines whether the determination at decision step 38 is affirmative, then it is necessary to repeat the sequence beginning at step 32 , in which the current subpartition is searched and re-divided. Control returns to step 32 . Recursion may be employed for convenience of implementation, as shown by a broken line 40 .
- decision step 42 it is determined whether more subpartitions need to be evaluated.
- control returns to step 36 .
- every subpartition at the current level of recursion contains exactly one string. It is now necessary to determine whether other levels of recursion remain to be evaluated. A return from recursion now occurs if appropriate.
- control proceeds to final step 48 , completing the first phase. At this point, every partition contains exactly one string.
- FIG. 3 is a flow chart illustrating a second phase of a method of runtime string matching in accordance with a disclosed embodiment of the invention.
- data structures typically strings, that hold the partitions that were generated according to the method disclosed in FIG. 2 are checked for correspondence with a client-supplied string.
- the method begins at initial step 50 , in which a string to be matched is provided by a client.
- step 52 a data structure containing one of the partitions created in step 28 ( FIG. 2 ) is selected. It will be recalled that the partitioning in step 28 was according to string length.
- step 54 it is determined if the length of the client-supplied string obtained in initial step 50 is the same as the length of the string associated with the partition selected in step 52 . If the determination at decision step 54 is affirmative, then control proceeds directly to step 56 , which is described below.
- control proceeds to decision step 58 , where it is determined if more data structures associated with the partitions created in step 28 ( FIG. 2 ) remain to be processed. If the determination at decision step 58 is affirmative, then control returns to step 52 .
- Step 56 is performed when a match by string length is found between the client-supplied string and a string in one of the partitions.
- the best character position of the client-supplied string is initially selected. This position was established in step 32 ( FIG. 2 ) as the character position that would allow the candidate strings in the current partition to be divided into the largest number of subpartitions.
- step 62 operations are performed on a partition and its subpartitions, all being associated with a string having the same length as the client-supplied string. Members of this subset were created in various performances of step 34 ( FIG. 2 ).
- This subset is now defined.
- the subset consists of the subpartitions that were created at the best character position of the client-supplied string that was established in step 56 .
- the subset is constituted from subpartitions that share other character positions, while still having the length of the client-supplied string.
- one member of the subset is selected at step 64 .
- control proceeds to decision step 68 , which is described below.
- control proceeds to decision step 70 , where it is determined if there are more members of the current subset that was defined in step 64 remaining to be processed.
- control returns to step 64 .
- Decision step 68 is performed if a character match was found at decision step 66 . Here it is determined if there are more character positions in the client-supplied string to evaluate.
- control returns to step 62 .
- the method described with reference to FIG. 2 requires one more character comparison operation than a sequential algorithm, such as is used in programs such as lex. More typically, however, the inventive method results in significantly fewer comparison operations as compared to a sequential algorithm.
- Listing 1 is a Java code listing that accepts as input a set of strings to be matched, and performs the steps as detailed in FIG. 2 and FIG. 3 .
- Java is available from Sun Microsystems, Inc., Palo Alto, Calif.
- the output is source code that can be compiled into an executable program that accepts a client-supplied string to be matched with the set of strings.
- Listing 1 is provided as Java source code, the invention is by no means restricted to the use of Java. It will be clear to those skilled in the art that the principles of the invention can be applied using other computer languages and development environments.
- the program of Listing 1 maps a reference set of strings to integers in a near-optimal manner. This program is an implementation of the methods described above with respect to FIG. 2 and FIG. 3 .
- a developer includes the source code or executable code in a computer application using known techniques of compilation and linking or using any suitable application development environment. While the computer application is executing, a client inputs a string to be matched at runtime. The client-supplied string is then matched by the computer, following the procedures disclosed above.
- Listing 2 is an input file for use by the program of Listing 1. It contains multiple possible strings to be matched against a client-supplied string.
- Listing 3 is automatically generated output using the program of Listing 1.
- Listing 3 consists of Java source code, which can be incorporated, in another computer application, which enables rapid matching of a client-supplied string against the particular set of strings listed in Listing 2.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
Abstract
Description
Claims (12)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/019,014 US7747635B1 (en) | 2004-12-21 | 2004-12-21 | Automatically generating efficient string matching code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/019,014 US7747635B1 (en) | 2004-12-21 | 2004-12-21 | Automatically generating efficient string matching code |
Publications (1)
Publication Number | Publication Date |
---|---|
US7747635B1 true US7747635B1 (en) | 2010-06-29 |
Family
ID=42271290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/019,014 Active 2026-07-29 US7747635B1 (en) | 2004-12-21 | 2004-12-21 | Automatically generating efficient string matching code |
Country Status (1)
Country | Link |
---|---|
US (1) | US7747635B1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090171936A1 (en) * | 2007-12-28 | 2009-07-02 | Sybase, Inc. | System, Method, and Computer Program Product for Accelerating Like Conditions |
US9019135B2 (en) | 2012-07-06 | 2015-04-28 | International Business Machines Corporation | Efficient string hash computation |
US9037545B2 (en) | 2006-05-05 | 2015-05-19 | Hybir Inc. | Group based complete and incremental computer file backup system, process and apparatus |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5990810A (en) | 1995-02-17 | 1999-11-23 | Williams; Ross Neil | Method for partitioning a block of data into subblocks and for storing and communcating such subblocks |
US6075896A (en) | 1994-08-16 | 2000-06-13 | Fujitsu Limited | Character pattern and character code matching method and apparatus |
US20030028522A1 (en) * | 2001-07-30 | 2003-02-06 | Microsoft Corporation | System and method for improved string matching under noisy channel conditions |
US20030069941A1 (en) * | 2001-10-10 | 2003-04-10 | Christopher Peiffer | String matching method and device |
US20030078915A1 (en) * | 2001-10-19 | 2003-04-24 | Microsoft Corporation | Generalized keyword matching for keyword based searching over relational databases |
US6611213B1 (en) | 1999-03-22 | 2003-08-26 | Lucent Technologies Inc. | Method and apparatus for data compression using fingerprinting |
US6785677B1 (en) * | 2001-05-02 | 2004-08-31 | Unisys Corporation | Method for execution of query to search strings of characters that match pattern with a target string utilizing bit vector |
US20040210551A1 (en) * | 2003-04-15 | 2004-10-21 | Jones Kerry N. | Method and apparatus for finding differences between two computer files efficiently in linear time and for using these differences to update computer files |
US20050198026A1 (en) * | 2004-02-03 | 2005-09-08 | Dehlinger Peter J. | Code, system, and method for generating concepts |
US20060004744A1 (en) * | 2004-06-19 | 2006-01-05 | Nevidomski Alex Nevidomski Ale | Method and system for approximate string matching |
US20060179052A1 (en) * | 2003-03-03 | 2006-08-10 | Pauws Steffen C | Method and arrangement for searching for strings |
US7444326B1 (en) * | 2002-06-17 | 2008-10-28 | At&T Corp. | Method of performing approximate substring indexing |
-
2004
- 2004-12-21 US US11/019,014 patent/US7747635B1/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6075896A (en) | 1994-08-16 | 2000-06-13 | Fujitsu Limited | Character pattern and character code matching method and apparatus |
US5990810A (en) | 1995-02-17 | 1999-11-23 | Williams; Ross Neil | Method for partitioning a block of data into subblocks and for storing and communcating such subblocks |
US6611213B1 (en) | 1999-03-22 | 2003-08-26 | Lucent Technologies Inc. | Method and apparatus for data compression using fingerprinting |
US6785677B1 (en) * | 2001-05-02 | 2004-08-31 | Unisys Corporation | Method for execution of query to search strings of characters that match pattern with a target string utilizing bit vector |
US20030028522A1 (en) * | 2001-07-30 | 2003-02-06 | Microsoft Corporation | System and method for improved string matching under noisy channel conditions |
US20030069941A1 (en) * | 2001-10-10 | 2003-04-10 | Christopher Peiffer | String matching method and device |
US20030078915A1 (en) * | 2001-10-19 | 2003-04-24 | Microsoft Corporation | Generalized keyword matching for keyword based searching over relational databases |
US7444326B1 (en) * | 2002-06-17 | 2008-10-28 | At&T Corp. | Method of performing approximate substring indexing |
US20060179052A1 (en) * | 2003-03-03 | 2006-08-10 | Pauws Steffen C | Method and arrangement for searching for strings |
US20040210551A1 (en) * | 2003-04-15 | 2004-10-21 | Jones Kerry N. | Method and apparatus for finding differences between two computer files efficiently in linear time and for using these differences to update computer files |
US20050198026A1 (en) * | 2004-02-03 | 2005-09-08 | Dehlinger Peter J. | Code, system, and method for generating concepts |
US20060004744A1 (en) * | 2004-06-19 | 2006-01-05 | Nevidomski Alex Nevidomski Ale | Method and system for approximate string matching |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9037545B2 (en) | 2006-05-05 | 2015-05-19 | Hybir Inc. | Group based complete and incremental computer file backup system, process and apparatus |
US9679146B2 (en) | 2006-05-05 | 2017-06-13 | Hybir Inc. | Group based complete and incremental computer file backup system, process and apparatus |
US10671761B2 (en) | 2006-05-05 | 2020-06-02 | Hybir Inc. | Group based complete and incremental computer file backup system, process and apparatus |
US20090171936A1 (en) * | 2007-12-28 | 2009-07-02 | Sybase, Inc. | System, Method, and Computer Program Product for Accelerating Like Conditions |
US9019135B2 (en) | 2012-07-06 | 2015-04-28 | International Business Machines Corporation | Efficient string hash computation |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9026901B2 (en) | Viewing annotations across multiple applications | |
US8788473B2 (en) | Matching transactions in multi-level records | |
US7299450B2 (en) | Undoing changes in a software configuration management system | |
JP4255373B2 (en) | Management and synchronization application for network file systems | |
US7337199B2 (en) | Space management of an IMS database | |
US8156090B1 (en) | Maintaining file name uniqueness in an application development environment of a computing system | |
JP2008516347A (en) | Saving and restoring the interlock tree data store | |
US20080065661A1 (en) | Saving and restoring an interlocking trees datastore | |
US7213039B2 (en) | Synchronizing differing data formats | |
US20030037312A1 (en) | Documentation generator | |
CN111095421A (en) | Context-aware incremental algorithm for gene files | |
US7693874B2 (en) | Method and system for object linking | |
US7747635B1 (en) | Automatically generating efficient string matching code | |
Farinier et al. | Mergeable persistent data structures | |
CN117493169A (en) | Method, device, equipment and medium for detecting API (application program interface) behavior incompatibility among Java dependency library versions | |
CN110196952B (en) | Program code search processing method, device, equipment and storage medium | |
US20110313975A1 (en) | Validating files using a sliding window to access and correlate records in an arbitrarily large dataset | |
US6904426B2 (en) | Method, computer program product, and system for the generation of transaction screen displays from a hierarchical database management log utilizing a batch terminal simulator | |
CN113312149B (en) | Password resetting method | |
US20070033162A1 (en) | Methods and media for efficiently processing data selected for recording to optical media | |
CN112148710B (en) | Micro-service library separation method, system and medium | |
US7386570B2 (en) | Method, system and program product for providing high performance data lookup | |
CN109947775B (en) | Data processing method and device, electronic equipment and computer readable medium | |
JPH1069421A (en) | Programmable option for volume mount of computer system | |
US20060136480A1 (en) | Method for generating a choose tree for a range partitioned database table |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SUN MICROSYSTEMS, INC.,CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SWIDLER, SHLOMO;BLAUKOPF, DANIEL;SIGNING DATES FROM 20041121 TO 20041122;REEL/FRAME:016132/0085 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: ORACLE AMERICA, INC., CALIFORNIA Free format text: MERGER AND CHANGE OF NAME;ASSIGNORS:ORACLE USA, INC.;SUN MICROSYSTEMS, INC.;ORACLE AMERICA, INC.;REEL/FRAME:037306/0292 Effective date: 20100212 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552) Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |