summaryrefslogtreecommitdiff
path: root/storage/innobase/include/eval0eval.ic
diff options
context:
space:
mode:
authorGuilhem Bichot <guilhem@mysql.com>2009-08-04 13:25:19 +0200
committerGuilhem Bichot <guilhem@mysql.com>2009-08-04 13:25:19 +0200
commitb57e4dbd88671df86e2cf39aff5178976d710b64 (patch)
tree32be2bfec3ca062c65566c60ecf59b673d1f97e9 /storage/innobase/include/eval0eval.ic
parent1a0c2153a036296785dcdfa7b5f4974515616e11 (diff)
parent94efc1c6b084ed531b513e70fb66e7b7a1186b56 (diff)
downloadmariadb-git-b57e4dbd88671df86e2cf39aff5178976d710b64.tar.gz
Creation of mysql-trunk = {summit + "Innodb plugin replacing the builtin"}:
bzr branch mysql-5.1-performance-version mysql-trunk # Summit cd mysql-trunk bzr merge mysql-5.1-innodb_plugin # which is 5.1 + Innodb plugin bzr rm innobase # remove the builtin Next step: build, test fixes.
Diffstat (limited to 'storage/innobase/include/eval0eval.ic')
-rw-r--r--storage/innobase/include/eval0eval.ic234
1 files changed, 0 insertions, 234 deletions
diff --git a/storage/innobase/include/eval0eval.ic b/storage/innobase/include/eval0eval.ic
deleted file mode 100644
index caffa2e0bfd..00000000000
--- a/storage/innobase/include/eval0eval.ic
+++ /dev/null
@@ -1,234 +0,0 @@
-/******************************************************
-SQL evaluator: evaluates simple data structures, like expressions, in
-a query graph
-
-(c) 1997 Innobase Oy
-
-Created 12/29/1997 Heikki Tuuri
-*******************************************************/
-
-#include "que0que.h"
-#include "rem0cmp.h"
-#include "pars0grm.h"
-
-/*********************************************************************
-Evaluates a function node. */
-
-void
-eval_func(
-/*======*/
- func_node_t* func_node); /* in: function node */
-/*********************************************************************
-Allocate a buffer from global dynamic memory for a value of a que_node.
-NOTE that this memory must be explicitly freed when the query graph is
-freed. If the node already has allocated buffer, that buffer is freed
-here. NOTE that this is the only function where dynamic memory should be
-allocated for a query node val field. */
-
-byte*
-eval_node_alloc_val_buf(
-/*====================*/
- /* out: pointer to allocated buffer */
- que_node_t* node, /* in: query graph node; sets the val field
- data field to point to the new buffer, and
- len field equal to size */
- ulint size); /* in: buffer size */
-
-
-/*********************************************************************
-Allocates a new buffer if needed. */
-UNIV_INLINE
-byte*
-eval_node_ensure_val_buf(
-/*=====================*/
- /* out: pointer to buffer */
- que_node_t* node, /* in: query graph node; sets the val field
- data field to point to the new buffer, and
- len field equal to size */
- ulint size) /* in: buffer size */
-{
- dfield_t* dfield;
- byte* data;
-
- dfield = que_node_get_val(node);
- dfield_set_len(dfield, size);
-
- data = dfield_get_data(dfield);
-
- if (!data || que_node_get_val_buf_size(node) < size) {
-
- data = eval_node_alloc_val_buf(node, size);
- }
-
- return(data);
-}
-
-/*********************************************************************
-Evaluates a symbol table symbol. */
-UNIV_INLINE
-void
-eval_sym(
-/*=====*/
- sym_node_t* sym_node) /* in: symbol table node */
-{
-
- ut_ad(que_node_get_type(sym_node) == QUE_NODE_SYMBOL);
-
- if (sym_node->indirection) {
- /* The symbol table node is an alias for a variable or a
- column */
-
- dfield_copy_data(que_node_get_val(sym_node),
- que_node_get_val(sym_node->indirection));
- }
-}
-
-/*********************************************************************
-Evaluates an expression. */
-UNIV_INLINE
-void
-eval_exp(
-/*=====*/
- que_node_t* exp_node) /* in: expression */
-{
- if (que_node_get_type(exp_node) == QUE_NODE_SYMBOL) {
-
- eval_sym((sym_node_t*)exp_node);
-
- return;
- }
-
- eval_func(exp_node);
-}
-
-/*********************************************************************
-Sets an integer value as the value of an expression node. */
-UNIV_INLINE
-void
-eval_node_set_int_val(
-/*==================*/
- que_node_t* node, /* in: expression node */
- lint val) /* in: value to set */
-{
- dfield_t* dfield;
- byte* data;
-
- dfield = que_node_get_val(node);
-
- data = dfield_get_data(dfield);
-
- if (data == NULL) {
- data = eval_node_alloc_val_buf(node, 4);
- }
-
- ut_ad(dfield_get_len(dfield) == 4);
-
- mach_write_to_4(data, (ulint)val);
-}
-
-/*********************************************************************
-Gets an integer non-SQL null value from an expression node. */
-UNIV_INLINE
-lint
-eval_node_get_int_val(
-/*==================*/
- /* out: integer value */
- que_node_t* node) /* in: expression node */
-{
- dfield_t* dfield;
-
- dfield = que_node_get_val(node);
-
- ut_ad(dfield_get_len(dfield) == 4);
-
- return((int)mach_read_from_4(dfield_get_data(dfield)));
-}
-
-/*********************************************************************
-Gets a iboolean value from a query node. */
-UNIV_INLINE
-ibool
-eval_node_get_ibool_val(
-/*====================*/
- /* out: iboolean value */
- que_node_t* node) /* in: query graph node */
-{
- dfield_t* dfield;
- byte* data;
-
- dfield = que_node_get_val(node);
-
- data = dfield_get_data(dfield);
-
- ut_ad(data != NULL);
-
- return(mach_read_from_1(data));
-}
-
-/*********************************************************************
-Sets a iboolean value as the value of a function node. */
-UNIV_INLINE
-void
-eval_node_set_ibool_val(
-/*====================*/
- func_node_t* func_node, /* in: function node */
- ibool val) /* in: value to set */
-{
- dfield_t* dfield;
- byte* data;
-
- dfield = que_node_get_val(func_node);
-
- data = dfield_get_data(dfield);
-
- if (data == NULL) {
- /* Allocate 1 byte to hold the value */
-
- data = eval_node_alloc_val_buf(func_node, 1);
- }
-
- ut_ad(dfield_get_len(dfield) == 1);
-
- mach_write_to_1(data, val);
-}
-
-/*********************************************************************
-Copies a binary string value as the value of a query graph node. Allocates a
-new buffer if necessary. */
-UNIV_INLINE
-void
-eval_node_copy_and_alloc_val(
-/*=========================*/
- que_node_t* node, /* in: query graph node */
- byte* str, /* in: binary string */
- ulint len) /* in: string length or UNIV_SQL_NULL */
-{
- byte* data;
-
- if (len == UNIV_SQL_NULL) {
- dfield_set_len(que_node_get_val(node), len);
-
- return;
- }
-
- data = eval_node_ensure_val_buf(node, len);
-
- ut_memcpy(data, str, len);
-}
-
-/*********************************************************************
-Copies a query node value to another node. */
-UNIV_INLINE
-void
-eval_node_copy_val(
-/*===============*/
- que_node_t* node1, /* in: node to copy to */
- que_node_t* node2) /* in: node to copy from */
-{
- dfield_t* dfield2;
-
- dfield2 = que_node_get_val(node2);
-
- eval_node_copy_and_alloc_val(node1, dfield_get_data(dfield2),
- dfield_get_len(dfield2));
-}