Blame ma_bulk.h

Packit Service 17f749
/************************************************************************************
Packit Service 17f749
   Copyright (C) 2017,2018 MariaDB Corporation AB
Packit Service 17f749
   
Packit Service 17f749
   This library is free software; you can redistribute it and/or
Packit Service 17f749
   modify it under the terms of the GNU Library General Public
Packit Service 17f749
   License as published by the Free Software Foundation; either
Packit Service 17f749
   version 2.1 of the License, or (at your option) any later version.
Packit Service 17f749
   
Packit Service 17f749
   This library is distributed in the hope that it will be useful,
Packit Service 17f749
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 17f749
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 17f749
   Library General Public License for more details.
Packit Service 17f749
   
Packit Service 17f749
   You should have received a copy of the GNU Library General Public
Packit Service 17f749
   License along with this library; if not see <http://www.gnu.org/licenses>
Packit Service 17f749
   or write to the Free Software Foundation, Inc., 
Packit Service 17f749
   51 Franklin St., Fifth Floor, Boston, MA 02110, USA
Packit Service 17f749
*************************************************************************************/
Packit Service 17f749
Packit Service 17f749
/* Code allowing to deploy MariaDB bulk operation functionality.
Packit Service 17f749
 * i.e. adapting ODBC param arrays to MariaDB arrays */
Packit Service 17f749
Packit Service 17f749
#ifndef _ma_bulk_h
Packit Service 17f749
#define _ma_bulk_h
Packit Service 17f749
Packit Service 17f749
#define MADB_DOING_BULK_OPER(_stmt) ((_stmt)->Bulk.ArraySize > 1)
Packit Service 17f749
Packit Service 17f749
/* Couple defined to make "switch"s look at least shorter, if not nicer */
Packit Service 17f749
#define CHAR_BINARY_TYPES SQL_C_CHAR:\
Packit Service 17f749
case SQL_C_BINARY:\
Packit Service 17f749
case SQL_LONGVARBINARY:\
Packit Service 17f749
case SQL_VARBINARY:\
Packit Service 17f749
case SQL_VARCHAR:\
Packit Service 17f749
case SQL_LONGVARCHAR
Packit Service 17f749
Packit Service 17f749
#define WCHAR_TYPES SQL_C_WCHAR:\
Packit Service 17f749
case SQL_WVARCHAR:\
Packit Service 17f749
case SQL_WLONGVARCHAR
Packit Service 17f749
Packit Service 17f749
#define DATETIME_TYPES SQL_C_TIMESTAMP:\
Packit Service 17f749
case SQL_TYPE_TIMESTAMP:\
Packit Service 17f749
case SQL_C_TIME:\
Packit Service 17f749
case SQL_TYPE_TIME:\
Packit Service 17f749
case SQL_C_INTERVAL_HOUR_TO_MINUTE:\
Packit Service 17f749
case SQL_C_INTERVAL_HOUR_TO_SECOND:\
Packit Service 17f749
case SQL_C_DATE:\
Packit Service 17f749
case SQL_TYPE_DATE
Packit Service 17f749
Packit Service 17f749
char          MADB_MapIndicatorValue(SQLLEN OdbcInd);
Packit Service 17f749
unsigned int  MADB_UsedParamSets(MADB_Stmt *Stmt);
Packit Service 17f749
BOOL          MADB_AppBufferCanBeUsed(SQLSMALLINT CType, SQLSMALLINT SqlType);
Packit Service 17f749
void          MADB_CleanBulkOperData(MADB_Stmt *Stmt, unsigned int ParamOffset);
Packit Service 17f749
SQLRETURN     MADB_InitBulkOperBuffers(MADB_Stmt *Stmt, MADB_DescRecord *CRec, void *DataPtr, SQLLEN *OctetLengthPtr,
Packit Service 17f749
                                      SQLLEN *IndicatorPtr, SQLSMALLINT SqlType, MYSQL_BIND *MaBind);
Packit Service 17f749
SQLRETURN     MADB_SetIndicatorValue(MADB_Stmt *Stmt, MYSQL_BIND *MaBind, unsigned int row, SQLLEN OdbcIndicator);
Packit Service 17f749
Packit Service 17f749
SQLRETURN     MADB_ExecuteBulk(MADB_Stmt *Stmt, unsigned int ParamOffset);
Packit Service 17f749
Packit Service 17f749
#endif