IP Library Granted Patent US 6,912,539
Granted Patent B1
US 6,912,539 · App. 10/112,883 · Granted Jun 28, 2005

Method and apparatus for verifying converted database commands

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,912,539
App. No.
10/112,883
Granted
Jun 28, 2005
Kind
B1
Abstract

A system and method converts database commands from one language and dialect to another and verifies the results of the conversion. If the results are accurate, changes may be committed to the database and otherwise, changes may be rolled back.

Claims (76)

1. A method of verifying a conversion of at least one database command, comprising:

converting from a first format to a second format the at least one command corresponding to an intended result;

providing the at least one command in the second format to a first database program that will not execute, in a manner that produces the intended result, the command in the first format;

receiving a first result from the first database program;

providing to a second database program at least one selected from:

the at least one command in the first format;

at least one command in a third format converted from the first format; and

the at least one command in the second format;

receiving a second result from the second database program;

comparing a content and row order of the first result and the second result; and

determining a validity of the command in the second format responsive to the comparing step.

2. The method of claim 1 comprising the additional step of responsive to the comparison step, providing to at least one selected from the first database program and the second database program, at least one selected from a rollback command to roll back a database to a state prior to an execution of a prior command and a commit command to commit a result to a database.

3. The method of claim 2 wherein the providing at least one selected from the first database program and the second database program step comprises providing the rollback command responsive to the comparison step determining that at least one row of the first result is not contained in the second result.

4. The method of claim 2 wherein the providing at least one selected from the first database program and the second database program step comprises providing the commit command responsive to the comparison step determining that every row of the first result matches a different one of rows of the second result.

5. The method of claim 2 wherein the providing at least one selected from the first database program and the second database program step is responsive to a user directive responsive to the comparison step determining that:

every row of the first result matches a different one of rows of the second result; and

at least one row in the first result has in a different order in the first result than an order of the row in the second result matching said row in the first result.

6. The method of claim 1 :

additionally comprising the step of receiving an identifier of the second format; and

wherein the command is converted from the first format to the second format responsive to the identifier of the second format received.

7. The method of claim 1 wherein the receiving the identifier step is responsive to a request for the type.

8. The method of claim 7 wherein:

the request is provided to the first database program; and

the identifier of the second format is received from the first database program.

9. The method of claim 1 wherein the command in the second format is determined to be valid responsive to the content and order of the first result identical to the content and order of the second result.

10. The method of claim 1 wherein the command in the second format is determined to be invalid responsive to the content of the first result different from the content of the second result.

11. A system for verifying a conversion of at least one database command, comprising:

a database command converter having an input for receiving the at least one database command in a first format, the database converter for converting from the first format to a second format the at least one command corresponding to an intended result, and for providing at an output the at least one database command in the second format;

a user interface manager having a first input coupled to the database command converter output for receiving the at least one database command in the second format, the user interface manager for providing at an output coupled to a first database program the at least one command in the second format to the first database program that will not execute, in a manner that produces the intended result, the command in the first format, the user interface manager additionally for providing to a second database program coupled to the user interface manager output at least one selected from:

the at least one command in the first format received at a second input;

at least one command in a third format converted from the first format by the database command converter and provided at the database command converter output coupled to a third input; and

the at least one command in the second format received from the database command converter output coupled to the third input;

a result receiver having an input coupled to the first database program and the second database program, the result receiver for receiving a first result from the first database program and a second result from the second database program and providing the first result and the second result at an output;

a result comparer having an input coupled to the result receiver output, the result receiver for comparing a content and row order of the first result and the second result and providing an indication of said comparison at an output; and

a result action identifier having an input coupled to the result comparer output for receiving the indication, the result action identifier for determining a validity of the command in the second format responsive to the indication received at the result action identifier input.

12. The system of claim 11 , wherein the result action identifier is additionally for, responsive to the indication received at the result action identifier input, providing at a second output coupled to at least one selected from the first database program and the second database program, at least one selected from a rollback command to roll back a database to a state prior to an execution of a prior command and a commit command to commit a result to a database.

13. The system of claim 12 wherein the result action identifier provides the rollback command to at least one selected from the first database program and the second database program responsive to the indication indicating at least one row of the first result is not contained in the second result.

14. The system of claim 12 wherein the result action identifier provides the commit command to at least one selected from the first database program and the second database program step responsive to the indication indicating that every row of the first result matches a different one of rows of the second result.

15. The system of claim 12 wherein the result action identifier provides the at least one selected from a rollback command to roll back a database to a state prior to an execution of a prior command and a commit command to commit a result to a database responsive to a user directive received at a user input of the result action identifier responsive to the comparison step determining that:

every row of the first result matches a different one of rows of the second result; and

at least one row in the first result has in a different order in the first result than an order of the row in the second result matching said row in the first result.

16. The system of claim 11 :

additionally comprising a destination type identifier having an input, the destination type identifier for receiving an identifier of the second format and, responsive to the identifier received at the destination type identifier input, providing an indication of the second format at an output coupled to a type input of the database command converter; and

wherein the database command converter converts the command from the first format to the second format responsive to the indication of the second format received at the database command converter type input.

17. The system of claim 11 wherein the destination type identifier is additionally for providing at an output a request for the identifier of the second format.

18. The system of claim 17 wherein:

the destination type identifier output is coupled to the first database program and the request is provided to the first database program; and

the destination type identifier input is coupled to the first database program and the identifier of the second format is received from the first database program.

19. The system of claim 11 wherein the result action identifier determines the command in the second format is valid responsive to the indication indicating the content and order of the first result is identical to the content and order of the second result.

20. The system of claim 11 wherein the result action identifier determines the command in the second format is invalid responsive to the indication indicating the content of the first result different from the content of the second result.

21. A computer program product comprising a computer useable medium having computer readable program code embodied therein for verifying a conversion of at least one database command, the computer program product comprising computer readable program code devices configured to cause a computer system to:

convert from a first format to a second format the at least one command corresponding to an intended result;

provide the at least one command in the second format to a first database program that will not execute, in a manner that produces the intended result, the command in the first format;

receive a first result from the first database program;

provide to a second database program at least one selected from:

the at least one command in the first format;

at least one command in a third format converted from the first format; and

the at least one command in the second format;

receive a second result from the second database program;

compare a content and row order of the first result and the second result; and

determine a validity of the command in the second format responsive to the computer readable program code devices configured to cause the computer system to compare.

22. The method of claim 21 additionally comprising the computer readable program code devices configured to cause the computer system to, responsive to the computer readable program code devices configured to cause the computer system to compare, provide to at least one selected from the first database program and the second database program, at least one selected from a rollback command to roll back a database to a state prior to an execution of a prior command and a commit command to commit a result to a database.

23. The method of claim 22 wherein the computer readable program code devices configured to cause the computer system to provide at least one selected from the first database program and the second database program comprise the computer readable program code devices configured to cause the computer system to provide the rollback command responsive to the computer readable program code devices configured to cause the computer system to compare determining that at least one row of the first result is not contained in the second result.

24. The method of claim 22 wherein the computer readable program code devices configured to cause the computer system to provide at least one selected from the first database program and the second database program comprise the computer readable program code devices configured to cause the computer system to provide the commit command responsive to the computer readable program code devices configured to cause the computer system to compare determining that every row of the first result matches a different one of rows of the second result.

25. The method of claim 22 wherein the computer readable program code devices configured to cause the computer system to provide at least one selected from the first database program and the second database program are responsive to a user directive responsive to the comparison step determining that:

every row of the first result matches a different one of rows of the second result; and

at least one row in the first result has in a different order in the first result than an order of the row in the second result matching said row in the first result.

26. The method of claim 21 :

additionally comprising the computer readable program code devices configured to cause the computer system to receive an identifier of the second format; and

wherein the command is converted from the first format to the second format responsive to the identifier of the second format received.

27. The method of claim 21 wherein the computer readable program code devices configured to cause the computer system to receive the identifier are responsive to a request for the type.

28. The method of claim 27 wherein:

the request is provided to the first database program; and

the identifier of the second format is received from the first database program.

29. The method of claim 21 wherein the command in the second format is determined to be valid responsive to the content and order of the first result identical to the content and order of the second result.

30. The method of claim 21 wherein the command in the second format is determined to be invalid responsive to the content of the first result different from the content of the second result.

Assignments (12)
RELEASE OF SECURITY INTEREST REEL/FRAME 039136/0241 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: SERENA SOFTWARE, INC
Reel/Frame 062623/0123 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
NOTICE OF SUCCESSION OF AGENCY Recorded May 2, 2017
From: BANK OF AMERICA, N.A., AS PRIOR AGENT
To: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR AGENT
Reel/Frame 042383/0830 →
SECURITY INTEREST Recorded Jul 12, 2016
From: SERENA SOFTWARE, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 039136/0241 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY'S NAME PREVIOUSLY RECORDED AT REEL: 026073 FRAME: 0206. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT. Recorded Jun 9, 2016
From: LEHMAN COMMERCIAL PAPER INC., AS RESIGNING ADMINISTRATIVE AGENT AND COLLATERAL AGENT
To: BARCLAYS BANK PLC, AS ADMINISTATIVE AGENT
Reel/Frame 038963/0840 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 032679/0596 Recorded May 2, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: SERENA SOFTWARE, INC.
Reel/Frame 038589/0480 →
RELEASE OF SECURITY AGREEMENT Recorded Apr 17, 2014
From: BARCLAYS BANK PLC, AS COLLATERAL AGENT
To: SERENA SOFTWARE, INC.
Reel/Frame 032712/0493 →
SECURITY INTEREST Recorded Apr 15, 2014
From: SERENA SOFTWARE, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 032679/0596 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED ON REEL 031571 FRAME 0458. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Apr 15, 2014
From: KAPITANSKI, BORIS; SIDORENKO, ALEX
To: SERENA SOFTWARE, INC.
Reel/Frame 032694/0301 →
CHANGE OF NAME Recorded Nov 8, 2013
From: SERENA SOFTWARE INTERNATIONAL, INC.
To: SERENA SOFTWARE, INC.
Reel/Frame 031609/0648 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2013
From: KAPITANSKI, BORIS; SIDORENKO, ALEX
To: SERENA SOFTWARE INTERNATIONAL, INC.
Reel/Frame 031571/0458 →