Files
five/_FiveSql2/bin/.hbmk/linux/gcc/TSqlTxn.c
Charles KWON OhJun 486e466592 feat: FiveSql2 43/43, @byref, mutable closure, RTL 479, DateTime fix
Major changes since last commit:
- FiveSql2 SQL:1999 engine (10,458 LOC) — 43/43 ALL PASS
- 21 compiler/runtime bugs fixed (short-circuit AND/OR, FOR LOOP, etc.)
- @byref pass-by-reference via RefCell pattern
- Mutable closure capture (EnsureLocalRef + RefCell sharing)
- RTL: 400 → 479 functions (+79: file, string, datetime, hash, UTF-8)
- DateTime/Timestamp fully working (hb_DateTime, hb_Hour/Min/Sec, display)
- Reserved word guard (39 keywords blocked from function calls)
- AEval arg order fix (element before index)
- Closure capture redecl fix (unique _cap_ names per block)
- Hash/string indexing in ArrayPush/ArrayPop
- Harbour compat test suite: 51/51
- 4 docs: Porting Report, Implementation Plan, Optimization Plan, Commercialization

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 11:35:37 +09:00

346 lines
12 KiB
C

/*
* Harbour 3.2.0dev (r2510040809)
* GNU C 13.3 (64-bit)
* Generated C source from "src/TSqlTxn.prg"
*/
#include "hbvmpub.h"
#include "hbinit.h"
HB_FUNC( TSQLTXN );
HB_FUNC_EXTERN( __CLSLOCKDEF );
HB_FUNC_EXTERN( HBCLASS );
HB_FUNC_EXTERN( HBOBJECT );
HB_FUNC_STATIC( TSQLTXN_NEW );
HB_FUNC_STATIC( TSQLTXN_BEGIN );
HB_FUNC_STATIC( TSQLTXN_COMMIT );
HB_FUNC_STATIC( TSQLTXN_ROLLBACK );
HB_FUNC_STATIC( TSQLTXN_ROLLBACKTO );
HB_FUNC_STATIC( TSQLTXN_SETSAVEPOINT );
HB_FUNC_STATIC( TSQLTXN_LOGRECORD );
HB_FUNC_STATIC( TSQLTXN_ISACTIVE );
HB_FUNC_EXTERN( __CLSUNLOCKDEF );
HB_FUNC_EXTERN( __OBJHASMSG );
HB_FUNC_EXTERN( USED );
HB_FUNC_EXTERN( DBSELECTAREA );
HB_FUNC_EXTERN( DBCOMMIT );
HB_FUNC_EXTERN( LEN );
HB_FUNC_EXTERN( SELECT );
HB_FUNC_EXTERN( DBUSEAREA );
HB_FUNC_EXTERN( LOWER );
HB_FUNC_EXTERN( DBGOTO );
HB_FUNC_EXTERN( DBRLOCK );
HB_FUNC_EXTERN( FIELDPUT );
HB_FUNC_EXTERN( DBDELETE );
HB_FUNC_EXTERN( DBRUNLOCK );
HB_FUNC_EXTERN( DBCLOSEAREA );
HB_FUNC_EXTERN( UPPER );
HB_FUNC_EXTERN( HB_HHASKEY );
HB_FUNC_EXTERN( ASIZE );
HB_FUNC_EXTERN( AADD );
HB_FUNC_EXTERN( FIELDGET );
HB_FUNC_EXTERN( FCOUNT );
HB_FUNC_INITSTATICS();
HB_INIT_SYMBOLS_BEGIN( hb_vm_SymbolInit_TSQLTXN )
{ "TSQLTXN", {HB_FS_PUBLIC | HB_FS_FIRST | HB_FS_LOCAL}, {HB_FUNCNAME( TSQLTXN )}, NULL },
{ "__CLSLOCKDEF", {HB_FS_PUBLIC}, {HB_FUNCNAME( __CLSLOCKDEF )}, NULL },
{ "NEW", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
{ "HBCLASS", {HB_FS_PUBLIC}, {HB_FUNCNAME( HBCLASS )}, NULL },
{ "HBOBJECT", {HB_FS_PUBLIC}, {HB_FUNCNAME( HBOBJECT )}, NULL },
{ "ADDMETHOD", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
{ "TSQLTXN_NEW", {HB_FS_STATIC | HB_FS_LOCAL}, {HB_FUNCNAME( TSQLTXN_NEW )}, NULL },
{ "TSQLTXN_BEGIN", {HB_FS_STATIC | HB_FS_LOCAL}, {HB_FUNCNAME( TSQLTXN_BEGIN )}, NULL },
{ "TSQLTXN_COMMIT", {HB_FS_STATIC | HB_FS_LOCAL}, {HB_FUNCNAME( TSQLTXN_COMMIT )}, NULL },
{ "TSQLTXN_ROLLBACK", {HB_FS_STATIC | HB_FS_LOCAL}, {HB_FUNCNAME( TSQLTXN_ROLLBACK )}, NULL },
{ "TSQLTXN_ROLLBACKTO", {HB_FS_STATIC | HB_FS_LOCAL}, {HB_FUNCNAME( TSQLTXN_ROLLBACKTO )}, NULL },
{ "TSQLTXN_SETSAVEPOINT", {HB_FS_STATIC | HB_FS_LOCAL}, {HB_FUNCNAME( TSQLTXN_SETSAVEPOINT )}, NULL },
{ "TSQLTXN_LOGRECORD", {HB_FS_STATIC | HB_FS_LOCAL}, {HB_FUNCNAME( TSQLTXN_LOGRECORD )}, NULL },
{ "TSQLTXN_ISACTIVE", {HB_FS_STATIC | HB_FS_LOCAL}, {HB_FUNCNAME( TSQLTXN_ISACTIVE )}, NULL },
{ "CREATE", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
{ "__CLSUNLOCKDEF", {HB_FS_PUBLIC}, {HB_FUNCNAME( __CLSUNLOCKDEF )}, NULL },
{ "INSTANCE", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
{ "__OBJHASMSG", {HB_FS_PUBLIC}, {HB_FUNCNAME( __OBJHASMSG )}, NULL },
{ "INITCLASS", {HB_FS_PUBLIC | HB_FS_MESSAGE}, {NULL}, NULL },
{ "USED", {HB_FS_PUBLIC}, {HB_FUNCNAME( USED )}, NULL },
{ "DBSELECTAREA", {HB_FS_PUBLIC}, {HB_FUNCNAME( DBSELECTAREA )}, NULL },
{ "DBCOMMIT", {HB_FS_PUBLIC}, {HB_FUNCNAME( DBCOMMIT )}, NULL },
{ "LEN", {HB_FS_PUBLIC}, {HB_FUNCNAME( LEN )}, NULL },
{ "SELECT", {HB_FS_PUBLIC}, {HB_FUNCNAME( SELECT )}, NULL },
{ "DBUSEAREA", {HB_FS_PUBLIC}, {HB_FUNCNAME( DBUSEAREA )}, NULL },
{ "LOWER", {HB_FS_PUBLIC}, {HB_FUNCNAME( LOWER )}, NULL },
{ "DBGOTO", {HB_FS_PUBLIC}, {HB_FUNCNAME( DBGOTO )}, NULL },
{ "DBRLOCK", {HB_FS_PUBLIC}, {HB_FUNCNAME( DBRLOCK )}, NULL },
{ "FIELDPUT", {HB_FS_PUBLIC}, {HB_FUNCNAME( FIELDPUT )}, NULL },
{ "DBDELETE", {HB_FS_PUBLIC}, {HB_FUNCNAME( DBDELETE )}, NULL },
{ "DBRUNLOCK", {HB_FS_PUBLIC}, {HB_FUNCNAME( DBRUNLOCK )}, NULL },
{ "DBCLOSEAREA", {HB_FS_PUBLIC}, {HB_FUNCNAME( DBCLOSEAREA )}, NULL },
{ "UPPER", {HB_FS_PUBLIC}, {HB_FUNCNAME( UPPER )}, NULL },
{ "HB_HHASKEY", {HB_FS_PUBLIC}, {HB_FUNCNAME( HB_HHASKEY )}, NULL },
{ "ASIZE", {HB_FS_PUBLIC}, {HB_FUNCNAME( ASIZE )}, NULL },
{ "AADD", {HB_FS_PUBLIC}, {HB_FUNCNAME( AADD )}, NULL },
{ "FIELDGET", {HB_FS_PUBLIC}, {HB_FUNCNAME( FIELDGET )}, NULL },
{ "FCOUNT", {HB_FS_PUBLIC}, {HB_FUNCNAME( FCOUNT )}, NULL },
{ "(_INITSTATICS00004)", {HB_FS_INITEXIT | HB_FS_LOCAL}, {hb_INITSTATICS}, NULL }
HB_INIT_SYMBOLS_EX_END( hb_vm_SymbolInit_TSQLTXN, "src/TSqlTxn.prg", 0x0, 0x0003 )
#if defined( HB_PRAGMA_STARTUP )
#pragma startup hb_vm_SymbolInit_TSQLTXN
#elif defined( HB_DATASEG_STARTUP )
#define HB_DATASEG_BODY HB_DATASEG_FUNC( hb_vm_SymbolInit_TSQLTXN )
#include "hbiniseg.h"
#endif
HB_FUNC( TSQLTXN )
{
static const HB_BYTE pcode[] =
{
149,3,0,116,38,0,36,20,0,103,4,0,100,8,
29,118,1,176,1,0,104,4,0,12,1,29,107,1,
166,45,1,0,122,80,1,48,2,0,176,3,0,12,
0,106,8,84,83,113,108,84,120,110,0,108,4,4,
1,0,108,0,112,3,80,2,36,22,0,48,5,0,
95,2,106,4,78,101,119,0,108,6,95,1,92,8,
72,121,72,121,72,112,3,73,36,23,0,48,5,0,
95,2,106,6,66,101,103,105,110,0,108,7,95,1,
121,72,121,72,121,72,112,3,73,36,24,0,48,5,
0,95,2,106,7,67,111,109,109,105,116,0,108,8,
95,1,121,72,121,72,121,72,112,3,73,36,25,0,
48,5,0,95,2,106,9,82,111,108,108,98,97,99,
107,0,108,9,95,1,121,72,121,72,121,72,112,3,
73,36,26,0,48,5,0,95,2,106,11,82,111,108,
108,98,97,99,107,84,111,0,108,10,95,1,121,72,
121,72,121,72,112,3,73,36,27,0,48,5,0,95,
2,106,13,83,101,116,83,97,118,101,112,111,105,110,
116,0,108,11,95,1,121,72,121,72,121,72,112,3,
73,36,28,0,48,5,0,95,2,106,10,76,111,103,
82,101,99,111,114,100,0,108,12,95,1,121,72,121,
72,121,72,112,3,73,36,29,0,48,5,0,95,2,
106,9,73,115,65,99,116,105,118,101,0,108,13,95,
1,121,72,121,72,121,72,112,3,73,36,31,0,48,
14,0,95,2,112,0,73,167,14,0,0,176,15,0,
104,4,0,95,2,20,2,168,48,16,0,95,2,112,
0,80,3,176,17,0,95,3,106,10,73,110,105,116,
67,108,97,115,115,0,12,2,28,12,48,18,0,95,
3,164,146,1,0,73,95,3,110,7,48,16,0,103,
4,0,112,0,110,7
};
hb_vmExecute( pcode, symbols );
}
HB_FUNC_STATIC( TSQLTXN_NEW )
{
static const HB_BYTE pcode[] =
{
36,35,0,102,110,7
};
hb_vmExecute( pcode, symbols );
}
HB_FUNC_STATIC( TSQLTXN_ISACTIVE )
{
static const HB_BYTE pcode[] =
{
116,38,0,36,39,0,103,2,0,110,7
};
hb_vmExecute( pcode, symbols );
}
HB_FUNC_STATIC( TSQLTXN_BEGIN )
{
static const HB_BYTE pcode[] =
{
116,38,0,36,44,0,4,0,0,82,1,0,36,45,
0,120,82,2,0,36,46,0,177,0,0,82,3,0,
36,48,0,106,7,114,101,115,117,108,116,0,4,1,
0,106,20,84,114,97,110,115,97,99,116,105,111,110,
32,115,116,97,114,116,101,100,0,4,1,0,4,1,
0,4,2,0,110,7
};
hb_vmExecute( pcode, symbols );
}
HB_FUNC_STATIC( TSQLTXN_COMMIT )
{
static const HB_BYTE pcode[] =
{
13,1,0,116,38,0,36,55,0,103,2,0,31,71,
36,56,0,106,10,95,95,101,114,114,111,114,95,95,
0,4,1,0,93,240,3,106,32,78,111,32,97,99,
116,105,118,101,32,116,114,97,110,115,97,99,116,105,
111,110,32,116,111,32,67,79,77,77,73,84,0,106,
1,0,4,3,0,4,1,0,4,2,0,110,7,36,
59,0,122,165,80,1,25,41,36,60,0,85,95,1,
74,176,19,0,12,0,119,28,20,36,61,0,176,20,
0,95,1,20,1,36,62,0,176,21,0,20,0,36,
59,0,175,1,0,93,250,0,15,28,213,36,66,0,
4,0,0,82,1,0,36,67,0,9,82,2,0,36,
69,0,106,7,114,101,115,117,108,116,0,4,1,0,
106,22,84,114,97,110,115,97,99,116,105,111,110,32,
99,111,109,109,105,116,116,101,100,0,4,1,0,4,
1,0,4,2,0,110,7
};
hb_vmExecute( pcode, symbols );
}
HB_FUNC_STATIC( TSQLTXN_ROLLBACK )
{
static const HB_BYTE pcode[] =
{
13,8,0,116,38,0,36,77,0,103,2,0,31,73,
36,78,0,106,10,95,95,101,114,114,111,114,95,95,
0,4,1,0,93,240,3,106,34,78,111,32,97,99,
116,105,118,101,32,116,114,97,110,115,97,99,116,105,
111,110,32,116,111,32,82,79,76,76,66,65,67,75,
0,106,1,0,4,3,0,4,1,0,4,2,0,110,
7,36,81,0,85,80,7,36,83,0,176,22,0,103,
1,0,12,1,165,80,1,26,64,1,36,84,0,103,
1,0,95,1,1,122,1,80,3,36,85,0,103,1,
0,95,1,1,92,2,1,80,4,36,86,0,103,1,
0,95,1,1,92,3,1,80,5,36,88,0,9,80,
8,36,89,0,176,23,0,95,3,12,1,80,6,36,
90,0,95,6,121,8,28,79,36,91,0,113,63,0,
0,36,92,0,176,24,0,120,106,7,68,66,70,78,
84,88,0,176,25,0,95,3,12,1,106,5,46,100,
98,102,0,72,95,3,9,9,20,6,36,93,0,176,
23,0,95,3,12,1,80,6,36,94,0,120,80,8,
114,15,0,0,36,95,0,115,73,36,96,0,121,80,
6,36,99,0,95,6,121,15,29,156,0,36,100,0,
176,20,0,95,6,20,1,36,101,0,176,26,0,95,
4,20,1,36,102,0,176,27,0,95,4,12,1,28,
100,36,103,0,122,165,80,2,25,23,36,104,0,176,
28,0,95,2,95,5,95,2,1,20,2,36,103,0,
175,2,0,176,22,0,95,5,12,1,15,28,227,36,
106,0,176,22,0,103,1,0,95,1,1,12,1,92,
4,16,28,31,103,1,0,95,1,1,92,4,1,106,
7,73,78,83,69,82,84,0,8,28,10,36,107,0,
176,29,0,20,0,36,109,0,176,30,0,95,4,20,
1,36,111,0,176,21,0,20,0,36,112,0,95,8,
28,10,36,113,0,176,31,0,20,0,36,83,0,126,
1,255,255,95,1,122,35,29,193,254,36,118,0,176,
20,0,95,7,20,1,36,120,0,4,0,0,82,1,
0,36,121,0,9,82,2,0,36,123,0,106,7,114,
101,115,117,108,116,0,4,1,0,106,24,84,114,97,
110,115,97,99,116,105,111,110,32,114,111,108,108,101,
100,32,98,97,99,107,0,4,1,0,4,1,0,4,
2,0,110,7
};
hb_vmExecute( pcode, symbols );
}
HB_FUNC_STATIC( TSQLTXN_SETSAVEPOINT )
{
static const HB_BYTE pcode[] =
{
13,0,1,116,38,0,36,128,0,103,2,0,31,75,
36,129,0,106,10,95,95,101,114,114,111,114,95,95,
0,4,1,0,93,240,3,106,36,78,111,32,97,99,
116,105,118,101,32,116,114,97,110,115,97,99,116,105,
111,110,32,102,111,114,32,83,65,86,69,80,79,73,
78,84,0,106,1,0,4,3,0,4,1,0,4,2,
0,110,7,36,132,0,103,3,0,100,8,28,11,36,
133,0,177,0,0,82,3,0,36,135,0,176,22,0,
103,1,0,12,1,103,3,0,176,32,0,95,1,12,
1,2,36,137,0,106,7,114,101,115,117,108,116,0,
4,1,0,106,11,83,97,118,101,112,111,105,110,116,
32,0,95,1,72,106,5,32,115,101,116,0,72,4,
1,0,4,1,0,4,2,0,110,7
};
hb_vmExecute( pcode, symbols );
}
HB_FUNC_STATIC( TSQLTXN_ROLLBACKTO )
{
static const HB_BYTE pcode[] =
{
13,9,1,116,38,0,36,145,0,103,2,0,31,77,
36,146,0,106,10,95,95,101,114,114,111,114,95,95,
0,4,1,0,93,240,3,106,38,78,111,32,97,99,
116,105,118,101,32,116,114,97,110,115,97,99,116,105,
111,110,32,102,111,114,32,82,79,76,76,66,65,67,
75,32,84,79,0,106,1,0,4,3,0,4,1,0,
4,2,0,110,7,36,149,0,103,3,0,100,8,31,
19,176,33,0,103,3,0,176,32,0,95,1,12,1,
12,2,31,67,36,150,0,106,10,95,95,101,114,114,
111,114,95,95,0,4,1,0,93,240,3,106,11,83,
97,118,101,112,111,105,110,116,32,0,95,1,72,106,
11,32,110,111,116,32,102,111,117,110,100,0,72,106,
1,0,4,3,0,4,1,0,4,2,0,110,7,36,
153,0,103,3,0,176,32,0,95,1,12,1,1,80,
9,36,154,0,85,80,8,36,157,0,176,22,0,103,
1,0,12,1,165,80,2,26,64,1,36,158,0,103,
1,0,95,2,1,122,1,80,4,36,159,0,103,1,
0,95,2,1,92,2,1,80,5,36,160,0,103,1,
0,95,2,1,92,3,1,80,6,36,162,0,9,80,
10,36,163,0,176,23,0,95,4,12,1,80,7,36,
164,0,95,7,121,8,28,79,36,165,0,113,63,0,
0,36,166,0,176,24,0,120,106,7,68,66,70,78,
84,88,0,176,25,0,95,4,12,1,106,5,46,100,
98,102,0,72,95,4,9,9,20,6,36,167,0,176,
23,0,95,4,12,1,80,7,36,168,0,120,80,10,
114,15,0,0,36,169,0,115,73,36,170,0,121,80,
7,36,173,0,95,7,121,15,29,156,0,36,174,0,
176,20,0,95,7,20,1,36,175,0,176,26,0,95,
5,20,1,36,176,0,176,27,0,95,5,12,1,28,
100,36,177,0,122,165,80,3,25,23,36,178,0,176,
28,0,95,3,95,6,95,3,1,20,2,36,177,0,
175,3,0,176,22,0,95,6,12,1,15,28,227,36,
180,0,176,22,0,103,1,0,95,2,1,12,1,92,
4,16,28,31,103,1,0,95,2,1,92,4,1,106,
7,73,78,83,69,82,84,0,8,28,10,36,181,0,
176,29,0,20,0,36,183,0,176,30,0,95,5,20,
1,36,185,0,176,21,0,20,0,36,186,0,95,10,
28,10,36,187,0,176,31,0,20,0,36,157,0,126,
2,255,255,95,2,95,9,122,72,35,29,190,254,36,
193,0,176,34,0,103,1,0,95,9,20,2,36,195,
0,176,20,0,95,8,20,1,36,197,0,106,7,114,
101,115,117,108,116,0,4,1,0,106,26,82,111,108,
108,101,100,32,98,97,99,107,32,116,111,32,115,97,
118,101,112,111,105,110,116,32,0,95,1,72,4,1,
0,4,1,0,4,2,0,110,7
};
hb_vmExecute( pcode, symbols );
}
HB_FUNC_STATIC( TSQLTXN_LOGRECORD )
{
static const HB_BYTE pcode[] =
{
13,4,3,116,38,0,36,202,0,4,0,0,80,6,
36,204,0,103,2,0,31,8,36,205,0,100,110,7,
36,208,0,85,80,5,36,209,0,176,23,0,95,1,
12,1,80,4,36,210,0,95,4,121,15,28,84,36,
211,0,176,20,0,95,4,20,1,36,212,0,176,26,
0,95,2,20,1,36,213,0,122,165,80,7,25,25,
36,214,0,176,35,0,95,6,176,36,0,95,7,12,
1,20,2,36,213,0,175,7,0,176,37,0,12,0,
15,28,227,36,216,0,176,35,0,103,1,0,95,1,
95,2,95,6,95,3,4,4,0,20,2,36,218,0,
176,20,0,95,5,20,1,36,220,0,100,110,7
};
hb_vmExecute( pcode, symbols );
}
HB_FUNC_INITSTATICS()
{
static const HB_BYTE pcode[] =
{
117,38,0,4,0,116,38,0,4,0,0,82,1,0,
9,82,2,0,100,82,3,0,7
};
hb_vmExecute( pcode, symbols );
}