8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-24 10:43:03 +01:00
firebird-mirror/src/dsql/make_proto.h

69 lines
2.4 KiB
C++

/*
* PROGRAM: Dynamic SQL runtime support
* MODULE: make_proto.h
* DESCRIPTION: Prototype Header file for make.cpp
*
* The contents of this file are subject to the Interbase Public
* License Version 1.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy
* of the License at http://www.Inprise.com/IPL.html
*
* Software distributed under the License is distributed on an
* "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
* or implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code was created by Inprise Corporation
* and its predecessors. Portions created by Inprise Corporation are
* Copyright (C) Inprise Corporation.
*
* All Rights Reserved.
* Contributor(s): ______________________________________.
*
* 2002-07-20 Arno Brinkman: Added MAKE_desc_from_list
*/
#ifndef DSQL_MAKE_PROTO_H
#define DSQL_MAKE_PROTO_H
#include "../dsql/sym.h"
#include "../dsql/node.h"
namespace Jrd {
class dsql_nod;
class dsql_fld;
class dsql_req;
class DsqlCompilerScratch;
class VariableNode;
// Parameters to MAKE_constant
enum dsql_constant_type {
CONSTANT_STRING = 0, // stored as a string
CONSTANT_DOUBLE = 1, // stored as a string
CONSTANT_DATE = 2, // stored as a SLONG
CONSTANT_TIME = 3, // stored as a ULONG
CONSTANT_TIMESTAMP = 4, // stored as a QUAD
CONSTANT_SINT64 = 5, // stored as a SINT64
CONSTANT_BOOLEAN = 6, // stored as a UCHAR
};
}
Jrd::dsql_nod* MAKE_const_slong(SLONG);
Jrd::dsql_nod* MAKE_constant(Jrd::dsql_str*, Jrd::dsql_constant_type);
Jrd::dsql_nod* MAKE_str_constant(Jrd::dsql_str*, SSHORT);
Jrd::dsql_str* MAKE_cstring(const char*);
void MAKE_desc(Jrd::DsqlCompilerScratch*, dsc*, Jrd::dsql_nod*);
void MAKE_desc_from_field(dsc*, const Jrd::dsql_fld*);
void MAKE_desc_from_list(Jrd::DsqlCompilerScratch*, dsc*, Jrd::dsql_nod*, const TEXT*);
Jrd::dsql_nod* MAKE_field(Jrd::dsql_ctx*, Jrd::dsql_fld*, Jrd::dsql_nod*);
Jrd::dsql_nod* MAKE_field_name(const char*);
Jrd::dsql_nod* MAKE_list(Jrd::DsqlNodStack&);
Jrd::dsql_nod* MAKE_node(Dsql::nod_t, int);
Jrd::dsql_par* MAKE_parameter(Jrd::dsql_msg*, bool, bool, USHORT, const Jrd::dsql_nod*);
void MAKE_parameter_names(Jrd::dsql_par*, const Jrd::dsql_nod*);
Jrd::dsql_str* MAKE_string(const char*, int);
Jrd::dsql_str* MAKE_tagged_string(const char* str, size_t length, const char* charset);
#endif // DSQL_MAKE_PROTO_H