摘要:
A method for optimizing queries is described. A query, which includes a first expression for determining whether each of a set of values evaluates to NULL or NOT NULL, is received. At compile-time, a first representation of the query is generated, where the first representation indicates that the query is to be performed based on the first expression. Based on the first expression, a second expression is determined. The second expression is such that the first expression would evaluate to any NOT NULL value if and only if the second expression would evaluate to any NOT NULL value. The second expression, when evaluated, is much more computationally efficient compared with the evaluation of the first expression. Based on the first representation, a second representation of the query is generated, where the second representation indicates that the query is to be performed based on the second expression. Thereafter, the query is executed based on the second representation.
摘要:
To associate XML data objects (“child objects”), stored in rows of relational or object-relational tables, with the appropriate XML data objects (“parent objects”) from which the child objects descend, tables that contain child objects (“out-of-line” tables) are constructed with an additional column. In one embodiment, this column stores values that identify the root objects, in the appropriate table, from which the respective child objects descend. Hence, the root object from which any given object descends is traceable by following the respective value back to the corresponding root object. In one embodiment, this column stores values that identify the complete XML hierarchical path, through multiple tables, back to the root object from which the respective child objects descend. Consequently, XML query language queries against XML documents stored in such tables can be rewritten as SQL queries against the data in the tables, even in the presence of cyclic constructs.
摘要:
Techniques are provided for processing a query, including receiving the query, where the query specifies certain operations to be performed, including (a) a first set of one or more operations that are to be performed on a markup language data source and (b) a second set of one or more operations that are to be performed on a second data source. Then it is determined that a first server that manages the markup language data source is capable of performing the first set of operations. A request is sent to the first server to perform the first set of operations. A response is received, where the response contains results of performing the first set of operations on the markup language data source. Finally, results are generated for the query based at least in part on the results of performing the first set of operations.
摘要:
Techniques are provided for processing a query including receiving the query, where the query specifies certain operations; determining that the query includes a first portion in a first query language and a second portion in a second query language; generating a first in-memory representation for the first portion; generating a second in-memory representation for the second portion; generating a third in-memory representation of the query based on the first in-memory representation and the second in-memory representation; and performing the certain operations based on the third in-memory representation.
摘要:
Techniques are provided for changing data for an XML construct in an SQL/XML compliant database management system (DBMS). The DBMS allows instances of XML type to represent XML constructs, such as XML documents, XML elements, XML attributes, and fragments of XML documents. An SQL statement is received that includes an XML operator that operates on a particular component in an instance of XML type. During execution of the SQL statement, the XML operator is evaluated by modifying content for the component without modifying the entire instance. For example, an XML delete operator deletes the particular component from the instance. Other XML operators include an insert operator, an insert-before operator, an append-child operator, and an update operator. During execution, these operators may be rewritten to operate on existing SQL constructs, or evaluated by updating only some of the existing SQL constructs, or both.
摘要:
Techniques are provided for changing data for an XML construct in an SQL/XML compliant database management system (DBMS). The DBMS allows instances of XML type to represent XML constructs, such as XML documents, XML elements, XML attributes, and fragments of XML documents. An SQL statement is received that includes an XML operator that operates on a particular component in an instance of XML type. During execution of the SQL statement, the XML operator is evaluated by modifying content for the component without modifying the entire instance. For example, an XML delete operator deletes the particular component from the instance. Other XML operators include an insert operator, an insert-before operator, an append-child operator, and an update operator. During execution, these operators may be rewritten to operate on existing SQL constructs, or evaluated by updating only some of the existing SQL constructs, or both.
摘要:
Techniques are provided for changing data for an XML construct in an SQL/XML compliant database management system (DBMS). The DBMS allows instances of XML type to represent XML constructs, such as XML documents, XML elements, XML attributes, and fragments of XML documents. An SQL statement is received that includes an XML operator that operates on a particular component in an instance of XML type. During execution of the SQL statement, the XML operator is evaluated by modifying content for the component without modifying the entire instance. For example, an XML delete operator deletes the particular component from the instance. Other XML operators include an insert operator, an insert-before operator, an append-child operator, and an update operator. During execution, these operators may be rewritten to operate on existing SQL constructs, or evaluated by updating only some of the existing SQL constructs, or both.
摘要:
Techniques for transferring a serialized image of data for an XML construct includes selecting a first format from multiple different XML serialization formats that represent, in a database system, data for XML constructs as a series of data units, such as a series of bytes representing characters, or a series of bits, bytes or octets representing binary values. A message is generated that includes a payload and a payload type field. The payload includes particular serialized data that represents particular data for a particular XML construct in the first format. The type field includes data that indicates the first format. The message is sent from a sending component of the database system to a different receiving component of the database system. These techniques allow the format selection to be based on characteristics of the sending or receiving components to make better use of the resources available to the two components.
摘要:
A database server that manages a database retrieves metadata that is stored, within the database, in association with a procedure that is stored in the database. Based on the metadata, a Web service definition is automatically constructed to describe the procedure as a Web service. The WSDL definition can be referenced to construct SOAP messages with the appropriate arguments and in the appropriate format which, when received, are converted to a suitable format for invoking execution of the procedure by the database server.
摘要:
An XQuery access API is described, for providing access to XML data from a data source, using the XQuery language. A requestor can request, from a server, performance of an operation on XML data, wherein request messages and response messages conform to the Simple Object Access Protocol (SOAP). Request and response messages can be transmitted using Hypertext Transfer Protocol (HTTP) or Hypertext Transfer Protocol over Secure Socket Layer (HTTPS). The format of the request and response messages is specified in a definition of a Web service, where the definition conforms to the Web Service Description Language (WSDL).