Files
mars-flaim/sql/src/fcollate.h
dsandersoremutah ffe3cb6975 Changed Id property
git-svn-id: https://svn.code.sf.net/p/flaim/code/trunk@482 0109f412-320b-0410-ab79-c3e0c5ffbbe6
2006-05-30 22:00:45 +00:00

93 lines
2.6 KiB
C

//------------------------------------------------------------------------------
// Desc: Header for collation routines
//
// Tabs: 3
//
// Copyright (c) 1991-1992, 1994-2000, 2002-2006 Novell, Inc.
// All Rights Reserved.
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of version 2 of the GNU General Public
// License as published by the Free Software Foundation.
//
// 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, contact Novell, Inc.
//
// To contact Novell about this file by physical or electronic mail,
// you may find current contact information at www.novell.com
//
// $Id$
//------------------------------------------------------------------------------
#ifndef FCOLLATE_H
#define FCOLLATE_H
#define TRUNCATED_FLAG 0x8000
#define EXCLUSIVE_LT_FLAG 0x4000
#define EXCLUSIVE_GT_FLAG 0x2000
#define SEARCH_KEY_FLAG 0x1000
#define KEY_COMPONENT_LENGTH_MASK 0x0FFF
#define KEY_LOW_VALUE 0x0FFE
#define KEY_HIGH_VALUE 0x0FFF
FINLINE FLMBOOL isKeyComponentLTExclusive(
const FLMBYTE * pucKeyComponent)
{
return( (FB2UW( pucKeyComponent) & EXCLUSIVE_LT_FLAG) ? TRUE : FALSE);
}
FINLINE FLMBOOL isKeyComponentGTExclusive(
const FLMBYTE * pucKeyComponent)
{
return( (FB2UW( pucKeyComponent) & EXCLUSIVE_GT_FLAG) ? TRUE : FALSE);
}
FINLINE FLMBOOL isKeyComponentTruncated(
const FLMBYTE * pucKeyComponent)
{
return( (FB2UW( pucKeyComponent) & TRUNCATED_FLAG) ? TRUE : FALSE);
}
FINLINE FLMBOOL isSearchKeyComponent(
const FLMBYTE * pucKeyComponent)
{
return( (FB2UW( pucKeyComponent) & SEARCH_KEY_FLAG) ? TRUE : FALSE);
}
FINLINE FLMUINT getKeyComponentLength(
const FLMBYTE * pucKeyComponent)
{
return( (FLMUINT)(FB2UW( pucKeyComponent)) & KEY_COMPONENT_LENGTH_MASK);
}
RCODE flmColText2StorageText(
const FLMBYTE * pucColStr,
FLMUINT uiColStrLen,
FLMBYTE * pucStorageBuf,
FLMUINT * puiStorageLen,
FLMUINT uiLang,
FLMBOOL * pbDataTruncated,
FLMBOOL * pbFirstSubstring);
RCODE flmUTF8ToColText(
IF_PosIStream * pIStream,
FLMBYTE * pucCollatedStr,
FLMUINT * puiCollatedStrLen,
FLMBOOL bCaseInsensitive,
FLMUINT * puiCollationLen,
FLMUINT * puiCaseLen,
FLMUINT uiLanguage,
FLMUINT uiCharLimit,
FLMBOOL bFirstSubstring,
FLMBOOL bDataTruncated,
FLMBOOL * pbOriginalCharsLost,
FLMBOOL * pbDataTruncated);
#endif