Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Advanced compiler optimizations for supercomputers
Communications of the ACM - Special issue on parallelism
ACM Transactions on Database Systems (TODS)
Grammar-like functional rules for representing query optimization alternatives
SIGMOD '88 Proceedings of the 1988 ACM SIGMOD international conference on Management of data
On the translation of relational queries into iterative programs
ACM Transactions on Database Systems (TODS)
Extensible query processing in starburst
SIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
Supercompilers for parallel and vector computers
Supercompilers for parallel and vector computers
Proceedings of the second international workshop on Database programming languages
Extensions to Starburst: objects, types, functions, and rules
Communications of the ACM
Extensible/rule based query rewrite optimization in Starburst
SIGMOD '92 Proceedings of the 1992 ACM SIGMOD international conference on Management of data
A transformation-based approach to optimizing loops in database programming languages
SIGMOD '92 Proceedings of the 1992 ACM SIGMOD international conference on Management of data
Understanding the new SQL: a complete guide
Understanding the new SQL: a complete guide
Query evaluation techniques for large databases
ACM Computing Surveys (CSUR)
Parallelism in relational data base systems: architectural issues and design approaches
DPDS '90 Proceedings of the second international symposium on Databases in parallel and distributed systems
On optimizing an SQL-like nested query
ACM Transactions on Database Systems (TODS)
Dependence graphs and compiler optimizations
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Access path selection in a relational database management system
SIGMOD '79 Proceedings of the 1979 ACM SIGMOD international conference on Management of data
Anatomy of a Mudular Multiple Query Optimizer
VLDB '88 Proceedings of the 14th International Conference on Very Large Data Bases
Hi-index | 0.02 |
The draft of the SQL/PSM standard denes a procedural extension to the existing SQL2 language. An essential part of this extension is the support of procedural constructs such as BEGIN/END blocks, local variables, assignment statements, conditional statements, and various forms of loops.Such an extension introduces new challenges to existing SQL compilers. Most SQL compilers exiting in the marketplace today were built based on the declarativeness of SQL. The question is how these procedural extensions can be best implemented in a relational DBMS without losing the power of existing query optimization mechanisms. So far, most implementations of the SQL procedural extensions rely on the use of a separate interpreter to handle the procedural statements so that the existing SQL compiler can be left untouched. Although this approach is quite easy to implement (as it follows the paradigm currently used between SQL and host languages), it does not provide the best possible performance.In this paper, we propose an integrated approach to extend existing query compilers to support SQL/PSM-like procedural extensions. We show how the existing SQL compiler infrastructure can be generalized to accommodate the new procedural constructs, and we describe how this approach can be implemented as part of an existing DBMS. The work presented in this paper has been prototyped on the code base of IBM DB2 for Common Server Version 2 product.