mariadb/ndb/test/odbc/tpcb/timesten.h
unknown 6386c55cee Initial revision of NDB Cluster files
BitKeeper/etc/logging_ok:
  Logging to logging@openlogging.org accepted
2004-04-14 10:53:21 +02:00

188 lines
5 KiB
C

/* Copyright (C) 2003 MySQL AB
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; either version 2 of the License, or
(at your option) any later version.
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
/*
* $Revision: 1.1 $
* (c) Copyright 1997-2003, TimesTen, Inc.
* All rights reserved.
*/
#ifndef TIMESTEN_H_INCLUDED
#define TIMESTEN_H_INCLUDED
#ifdef _WIN32
#include <windows.h>
#endif
#include <sql.h>
#include <sqltypes.h>
#include <sqlext.h>
/*
* TimesTen extension to application data types; only usable
* when application directly linked to the TimesTen driver.
*/
#define SQL_C_ADDR 100
#ifndef SQL_C_SBIGINT
#if (ODBCVER < 0x0300)
#define SQL_C_SBIGINT (SQL_BIGINT+SQL_SIGNED_OFFSET)
#define SQL_C_UBIGINT (SQL_BIGINT+SQL_UNSIGNED_OFFSET)
#endif
#endif
#define SQL_C_BIGINT SQL_C_SBIGINT
#if (ODBCVER < 0x0300)
#ifdef _WIN32
typedef __int64 SQLBIGINT;
/* On Unix platforms SQLBIGINT is defined in odbcinclude directory*/
#endif
#endif
#define BIGINT SQLBIGINT
#ifdef _WIN32
#define UBIGINT unsigned __int64
#else
#define UBIGINT unsigned long long
#endif
#define SQL_WCHAR (-8)
#define SQL_WVARCHAR (-9)
#define SQL_WLONGVARCHAR (-10)
#define SQL_C_WCHAR SQL_WCHAR
/* SQLGetInfo() InfoTypes */
#define SQL_CONVERT_WCHAR 122
#define SQL_CONVERT_WLONGVARCHAR 125
#define SQL_CONVERT_WVARCHAR 126
/* TimesTen specific SQLGetInfo types */
#define TT_REPLICATION_INVALID (SQL_INFO_DRIVER_START + 2000)
/* SQLGetInfo() return value bitmasks */
#ifndef SQL_CVT_WCHAR
/*
** These definitions differ from Microsoft in that they are not
** specified as long (e.g. 0x00200000L), hence they are protected
** by the ifndef above.
*/
#define SQL_CVT_WCHAR 0x00200000
#define SQL_CVT_WLONGVARCHAR 0x00400000
#define SQL_CVT_WVARCHAR 0x00800000
#endif
/*
** The Microsoft Driver Manager SQLBindParameter() will not pass SQL_WCHAR
** through. Use this hack to get around it.
*/
#define SQL_WCHAR_DM_SQLBINDPARAMETER_BYPASS -888
/* This is an extension to ODBC's isolation levels. It reflects an
* earlier implementation of read-committed that released locks on
* next fetch, rather than releasing locks before returning value to
* application. */
#define SQL_TXN_CURSOR_STABILITY 0x00001000
#define SQL_TXN_NOBLOCK_DELETE 0x00002000
/* TimesTen-specific connection option */
#define TT_PREFETCH_CLOSE 10001
#define TT_PREFETCH_CLOSE_OFF 0
#define TT_PREFETCH_CLOSE_ON 1
/* Adding a new sql connection option */
#define TT_PREFETCH_COUNT 10003
#define TT_PREFETCH_COUNT_MAX 128
/*
* Platform specific data types for integers that scale
* with pointer size
*/
#ifdef _IA64_
typedef signed __int64 tt_ptrint;
typedef unsigned __int64 tt_uptrint;
#else
#ifdef _WIN32
typedef signed long tt_ptrint;
typedef unsigned long tt_uptrint;
#else
typedef signed long tt_ptrint;
typedef unsigned long tt_uptrint;
#endif
#endif
#ifdef _WIN32
typedef signed __int64 tt_int8;
typedef unsigned __int64 tt_uint8;
#else
typedef signed long long tt_int8;
typedef unsigned long long tt_uint8;
#endif
/* printf formats for pointer-sized integers */
#ifdef _IA64_ /* 64-bit NT */
#define PTRINT_FMT "I64d"
#define UPTRINT_FMT "I64u"
#define xPTRINT_FMT "I64x"
#define XPTRINT_FMT "I64X"
#else
#ifdef _WIN32 /* 32-bit NT */
#define PTRINT_FMT "ld"
#define UPTRINT_FMT "lu"
#define xPTRINT_FMT "lx"
#define XPTRINT_FMT "lX"
#else /* 32 and 64-bit UNIX */
#define PTRINT_FMT "ld"
#define UPTRINT_FMT "lu"
#define xPTRINT_FMT "lx"
#define XPTRINT_FMT "lX"
#endif
#endif
/* printf formats for 8-byte integers */
#ifndef INT8_FMT_DEFINED
#ifdef _WIN32 /* 32 and 64-bit NT */
#define INT8_FMT "I64d"
#define UINT8_FMT "I64u"
#define xINT8_FMT "I64x"
#define XINT8_FMT "I64X"
#else /* 32 and 64-bit UNIX */
#define INT8_FMT "lld"
#define UINT8_FMT "llu"
#define xINT8_FMT "llx"
#define XINT8_FMT "llX"
#endif
#define INT8_FMT_DEFINED 1
#endif
/* The following types are defined in the newer odbc include files
from Microsoft
*/
#if defined (_WIN32) && !defined (_IA64_)
#ifndef SQLROWSETSIZE
#define SQLROWSETSIZE SQLUINTEGER
#define SQLLEN SQLINTEGER
#define SQLROWOFFSET SQLINTEGER
#define SQLROWCOUNT SQLUINTEGER
#define SQLULEN SQLUINTEGER
#define SQLSETPOSIROW SQLUSMALLINT
#endif
#endif
#endif