- fix parsing scripts containing SET AUTODDL and SET TERM statements
- SET TERM/SET AUTODDL will be output as SQL comments when regenerating SQL so thethe commands work with e.g. sqldb
git-svn-id: trunk@27923 -
- support reading (and ignoring) SET AUTODDL statements generated by isql.
This allows the parser to read isql-generated metadata extraction scripts from Firebird databases
- tests
git-svn-id: trunk@27921 -
- support for variables in array access (e.g. myarray[:localvar] as happens in stored procs)
- rename TSQLSymbolLiteral to TSQLSymbolString to avoid confusion between enum and the TSQL*Literal classes
- Noted to do: array access via variables results in ElementIndex not being set. Need to verify what impact (if any) this has
git-svn-id: trunk@27918 -
- SELECT A.B FROM A
- SELECT B FROM A ORDER BY C.D
- tests
Note: failing test due to needed implementation of parsing table.field into table and field references
git-svn-id: trunk@27912 -
- Correct OUTER join: there is no separate OUTER JOIN; the syntax is FULL JOIN or FULL OUTER JOIN
- Support for optional OUTER in LEFT OUTER and RIGHT OUTER JOIN
git-svn-id: trunk@27910 -
- cosmetic changes (capitalization, comments)
- add tests for SET TERM, symbol literal parsing introduced in r27907
- Lazarus test project: default+debug build mode: no optimalization, more checks enabled
git-svn-id: trunk@27908 -
The code generator gets two new methods, a_mul_reg_reg_pair and g_div_const_reg_reg. The first one is basically 32x32 to 64 bits multiplication (or any other size, with result having twice the size of arguments), which must be implemented for every target. The second one actually does the job, its default implementation taken from powerpc64 and is sufficiently good for all three-address targets.
+ Enabled optimized division for MIPS target, target-specific changes are under 30 lines.
git-svn-id: trunk@27904 -
as well. Even though, in these models, the stack is dynamically allocated
(because it goes on top of the heap, but the heap is variable size), there are
still benefits:
1) the program will run on a larger stack during initialization, before the
actual stack (and heap) are ready
2) in cases, when the system is extremely low on memory, DOS will reject to
load the program if there's not enough memory for the stack the program
requires. This way the startup code can be further simplified by omitting
the 'not enough memory' check in the future (when we add the minimum heap
size to the executable reserved space as well).
git-svn-id: trunk@27903 -
"sign:=left sar sizeof(left)*8-1; result:=(((left xor sign)-sign) and 2**N-1) xor sign)-sign;"
This solution yields larger code than one suggested by Mantis #21152, however its speed on i386 is approximately the same, and it is also suitable for all operand sizes, all powers of two and all targets.
git-svn-id: trunk@27891 -
* "Shift" parameter for signed calculation changed from aint to byte, since it only holds values up to 63. It is consistent with unsigned routine.
git-svn-id: trunk@27883 -
pdecobj.pas, object_dec:
* Always check for genericdef and genericlist and not genericdef and ifnot then genericlist.
+ added test
git-svn-id: trunk@27877 -