mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 02:51:44 +01:00
c868acdf65
WL#7682 in MySQL 5.7 introduced the possibility to create light-weight temporary tables in InnoDB. These are called 'intrinsic temporary tables' in InnoDB, and in MySQL 5.7, they can be created by the optimizer for sorting or buffering data in query processing. In MariaDB 10.2, the optimizer temporary tables cannot be created in InnoDB, so we should remove the dead code and related data structures.
80 lines
2.7 KiB
Text
80 lines
2.7 KiB
Text
/*****************************************************************************
|
|
|
|
Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved.
|
|
|
|
This program is free software; you can redistribute it and/or modify it under
|
|
the terms of the GNU General Public License as published by the Free Software
|
|
Foundation; version 2 of the License.
|
|
|
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License along with
|
|
this program; if not, write to the Free Software Foundation, Inc.,
|
|
51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA
|
|
|
|
*****************************************************************************/
|
|
|
|
/******************************************************************//**
|
|
@file include/dict0mem.ic
|
|
Data dictionary memory object creation
|
|
|
|
Created 1/8/1996 Heikki Tuuri
|
|
***********************************************************************/
|
|
|
|
#include "data0type.h"
|
|
#include "dict0mem.h"
|
|
#include "fil0fil.h"
|
|
|
|
/**********************************************************************//**
|
|
This function poplulates a dict_index_t index memory structure with
|
|
supplied information. */
|
|
UNIV_INLINE
|
|
void
|
|
dict_mem_fill_index_struct(
|
|
/*=======================*/
|
|
dict_index_t* index, /*!< out: index to be filled */
|
|
mem_heap_t* heap, /*!< in: memory heap */
|
|
const char* table_name, /*!< in: table name */
|
|
const char* index_name, /*!< in: index name */
|
|
ulint space, /*!< in: space where the index tree is
|
|
placed, ignored if the index is of
|
|
the clustered type */
|
|
ulint type, /*!< in: DICT_UNIQUE,
|
|
DICT_CLUSTERED, ... ORed */
|
|
ulint n_fields) /*!< in: number of fields */
|
|
{
|
|
|
|
if (heap) {
|
|
index->heap = heap;
|
|
index->name = mem_heap_strdup(heap, index_name);
|
|
index->fields = (dict_field_t*) mem_heap_alloc(
|
|
heap, 1 + n_fields * sizeof(dict_field_t));
|
|
} else {
|
|
index->name = index_name;
|
|
index->heap = NULL;
|
|
index->fields = NULL;
|
|
}
|
|
|
|
/* Assign a ulint to a 4-bit-mapped field.
|
|
Only the low-order 4 bits are assigned. */
|
|
index->type = type;
|
|
#ifndef UNIV_HOTBACKUP
|
|
index->space = (unsigned int) space;
|
|
index->page = FIL_NULL;
|
|
index->merge_threshold = DICT_INDEX_MERGE_THRESHOLD_DEFAULT;
|
|
#endif /* !UNIV_HOTBACKUP */
|
|
index->table_name = table_name;
|
|
index->n_fields = (unsigned int) n_fields;
|
|
/* The '1 +' above prevents allocation
|
|
of an empty mem block */
|
|
index->nulls_equal = false;
|
|
#ifdef MYSQL_INDEX_DISABLE_AHI
|
|
index->disable_ahi = false;
|
|
#endif
|
|
|
|
#ifdef UNIV_DEBUG
|
|
index->magic_n = DICT_INDEX_MAGIC_N;
|
|
#endif /* UNIV_DEBUG */
|
|
}
|