IDE Breakpoint Interoperability for Heterogeneous SQL Projects

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional debugging methods for SQL programmability objects in IDEs, such as stored procedures and user-defined functions, lack interoperability between database projects and non-database projects, leading to difficulties in setting and triggering breakpoints, especially when original source code is not available, and breakpoints are not persisted after closing the debug session.

Innovation Solution

Implementing an automated system within an IDE that enables SQL debugging across heterogeneous projects by binding database projects to the execution context of the database engine, allowing breakpoints to be set and triggered in SQL source code files, even in the absence of original source code, and persisting breakpoints across sessions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional debugging methods are used for SQL programmability objects, then breakpoints can be set in SQL code, but breakpoints cannot be triggered by code in non-database projects and debugging interoperability is lost

Engineering Contradiction:
Improvedebugging interoperabilityVSAvoidbreakpoint triggering
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent introduces an intermediary mechanism that enables communication between the debugger and database engine across project boundaries. The debugger intercepts database calls from non-database projects and translates them into breakpoint triggering events in the SQL code, allowing seamless interoperability between heterogeneous projects.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The debugging system is designed to handle multiple project types universally. The same breakpoint mechanism works whether the caller is a database project or a non-database project, and the debugger can intercept database calls from any project type, making the debugging system multi-functional and adaptable.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Ease of operation

If breakpoints are set in SQL source code files without original source code availability, then debugging can proceed, but breakpoints are not persisted after closing the debug session

Engineering Contradiction:
Improvebreakpoint settingVSAvoidbreakpoint persistence
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system performs preliminary actions by automatically binding database projects to the execution context before the debug session starts. This pre-establishes the mapping between SQL code and execution context, ensuring that breakpoints are persisted and can be reliably triggered in subsequent sessions without requiring manual reconfiguration.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The debugger provides feedback by automatically detecting and binding database projects to the execution context. This feedback mechanism ensures that the system remembers the project bindings across sessions, making breakpoint persistence reliable and eliminating the need for manual reconfiguration.

Inventive Principle:
Principle #23Feedback

3Reliability

If database projects are manually bound to execution context, then debugging can be configured, but the binding process is time-consuming and error-prone

Engineering Contradiction:
Improveproject bindingVSAvoidbinding configuration time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs self-service by automatically detecting and binding database projects to the execution context without requiring manual intervention. The debugger autonomously identifies the database projects, establishes the necessary bindings, and configures the execution context, eliminating the need for manual configuration and reducing setup time.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The binding process is performed as a preliminary action during the debug session initialization. The system automatically establishes project bindings before the user needs to start debugging, saving time and ensuring reliability without requiring manual configuration steps during the actual debugging process.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8997050B2TSQL debug breakpoint interoperability across heterogeneous projects
Publication Date: 2015.03.31 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8997050B2 patent drawing
  • US8997050B2 patent drawing
  • US8997050B2 patent drawing

AI summary

TSQL debug breakpoint interoperability across heterogeneous project systems within an IDE can be provided. A user can set a breakpoint in the user's SQL source code and the breakpoint can be triggered by the code within another project. Breakpoints can be set and triggered within SQL source code tiles that reside in one or more SQL Database projects. Binding of the application project being debugged with one or more SQL Database projects that reside within the IDE session can be automated, SQL artifacts not found in any of the SQL Database projects can be debugged.