IP Library Granted Patent US 7,269,583
Granted Patent B2
US 7,269,583 · App. 11/168,245 · Granted Sep 11, 2007

System and method 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 7,269,583
App. No.
11/168,245
Granted
Sep 11, 2007
Kind
B2
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 (87)

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, different from the first 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;

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

operating a computer system responsive to the determining the validity 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. The method of claim 1 , wherein the providing to a second database program step comprises providing the at least one command in the first format.

12. The method of claim 1 , wherein the providing to a second database program step comprises providing the at least one command in a third format converted from the first format.

13. The method of claim 1 , wherein the providing to a second database program step comprises providing the at least one command in the second format.

14. 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, different from the first database program, and 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.

15. The system of claim 14 , 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.

16. The system of claim 15 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.

17. The system of claim 15 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.

18. The system of claim 15 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.

19. The system of claim 14 :

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.

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

21. The system of claim 20 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.

22. The system of claim 14 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.

23. The system of claim 14 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.

24. The system of claim 14 , wherein the user interface manager provides to the second database program coupled to the user interface manager output the at least one command in the first format received at a second input.

25. The system of claim 14 , wherein the user interface manager provides to the second database program coupled to the user interface manager output the at least one command in the 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.

26. The system of claim 14 , wherein the user interface manager provides to the second database program coupled to the user interface manager output the at least one command in the second format received from the database command converter output coupled to the third input.

27. 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, different from the first 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;

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; and

operate the computer system responsive to the computer readable program code devices configured to cause the computer system to determine the validity.

28. The computer program product of claim 27 additionally comprising 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.

29. The computer program product 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.

30. The computer program product of claim 28 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.

31. The computer program product of claim 28 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.

32. The computer program product of claim 27 :

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.

33. The computer program product of claim 27 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.

34. The computer program product of claim 33 wherein:

the request is provided to the first database program; and

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

35. The computer program product of claim 27 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.

36. The computer program product of claim 27 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.

37. The computer program product of claim 27 , wherein the computer readable program code devices configured to cause the computer system to provide to the second database program comprise computer readable program code devices configured to cause the computer system to provide to the second database program the at least one command in the first format.

38. The computer program product of claim 27 , wherein the computer readable program code devices configured to cause the computer system to provide to the second database program comprise computer readable program code devices configured to cause the computer system to provide to the second database program at least one command in the third format converted from the first format.

39. The computer program product of claim 27 , wherein the computer readable program code devices configured to cause the computer system to provide to the second database program comprise computer readable program code devices configured to cause the computer system to provide to the second database program the at least one command in the second format.

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 →
SECURITY AGREEMENT Recorded Apr 4, 2011
From: SERENA SOFTWARE, INC., A DELAWARE CORPORATION
To: BARCLAYS BANK PLC. AS ADMINISTRATIVE AGENT
Reel/Frame 026073/0206 →
SECURITY AGREEMENT Recorded Mar 14, 2006
From: SERENA SOFTWARE, INC.
To: LEHMAN BROTHERS COMMERCIAL PAPER, INC., AS COLLATERAL AGENT
Reel/Frame 017297/0439 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2005
From: KAPITANSKI, BORIS; SIDORENKO, ALEX
To: SERENA SOFTWARE, INC.
Reel/Frame 016733/0960 →