Compact History for AbaPerls
This page gives a compact history that summarises each external release and
gives installation instructions. For a detailed history, see
this page.
L1.0.0402 – 2022-04-23
General note
It is not unlikely that this is the last public release of AbaPerls. AbaPerls was a great thing once upon a time, but it has not kept up with the changes. While this release adds support for sequences and temporal tables, there are many features in SQL Server that AbaPerls does not support or understand: schemas, In-Memory OLTP, Dynamic Data Masking, Always Encrypted only to name a few. I have not had the time to keep up with all new features that Microsoft adds to SQL Server. And that is only one side of it. When it comes to version-control, Git is becoming increasingly more popular, and the mindset of AbaPerls does not really fit with the mindset of Git.
For this reason, I cannot encourage you use AbaPerls for real, but I only share it as an example of you what you can do to improve work with SQL Server.
Changes in prerequisites, installation stc
- Connections to SQL 2005 is no longer supported. (And testing on older versions than SQL 2016 has been minimal).
- You should run update scripts to update databases to L1.0.0402.
- The install kit include update scripts starting on L1.0.0170. If you would need older scripts, please contact me.
Deprecations
- As follows from the introduction, AbaPerls itself is deprecated...
- Next version of AbaPerls (if there is any) is likely to drop support for all SQL Server version that are out of extended support at that point.
Functional Changes
- DBBUILD and DBUPDGEN had some special handling for types with name ending in _upduser. These specials have been removed.
- Added support for temporal tables. This requires label L1.0.0400 of the ABAPERLS subsystem.
- Sequences are now first class citizens in AbaPerls.
- AbaPerls now adds the check
IF rowcount_big() = 0 RETURN
first in DML triggers. See the file-load page for more details.
- AbaPerls now calls it error, if THROW comes directly after TRANSACTION, as you supposedly have forgotten a semicolon.
- In Development and Test databases is now possible to downgrade errors detected by Object Checking by giving the
‑force
option to ABASQL.
- AbaPerls now understands and supports the setting OPTIMIZE_FOR_SEQUENTIAL_KEY, which is handled in the same way as other storage settings.
- The loading of files with foreign keys have been improved, so that keys that have not changed will not be dropped and recreated. See the change from 2021-02-22 for more details.
- INSFILGEN now applies "Freeze panes" when creating the Excel file, so that the header line will always remain visible when you scroll,
- AbaPerls now determines whether a file is binary from the file extension for known file types rather than the encoding in TFS.
- AbaPerls now understands the syntax CREATE OR ALTER, and recognizes the functions string_split and OPENJSON.
- Added a utility procedure ap_hso_purge_old_sp to permit a DBA to delete old entries from abahistsysobjects in a controlled way.
- For a couple of smaller improvements, as a number of few bug fixes see the full Revision History.
L1.0.0360 – 2017-06-24
Changes with prerequisists, installation etc.
- AbaPerls now comes with a bundled Perl installation which has been
augmented with extra modules needed to run AbaPerls. You are strongly
recommended to use this Perl installation. See the
installation page for
details.
- AbaPerls now supports all versions of Team Foundation Server from TFS
2010 to TFS 2017. Likewise, AbaPerls supports Visual Studio 2010 to 2017.
Note, however, that future compatibility is not provided. (As that requires
new version of the TFS assemblies.)
- You should run update scripts to update databases to version L1.0.0353 to
get benefit of all new features.
Deprecations
Next public release of AbaPerls may not support SQL 2005.
Functional Changes and Major Bugfixes in Summary
- AbaPerls now installs a DDL trigger to disallow modification of
objects loaded with AbaPerls from SSMS and similar tools. It is possible to
bypass the DDL trigger to deploy critical fixes in production
databases, in which case a second DDL trigger logs the action to the table
abaddltribypasslog. See the documentation for this table for further
details. As part of this enhancement AbaPerls now supports a new file type,
.ddltri for DDL triggers on database level.
These files should reside in the MESSAGE directory.
- There have been many changes to DBUPDGEN:
- The format for update scripts is now 3.6.
- Significant changes to how DBUPDGEN generates the reload script for a
table to improve performance. See the entry for
2016-06-28 for details.
- The patch-script functionality in
DBUPDGEN has been revamped. See the changes from
2013-08-22 for more details.
- DBUPDGEN no longer relies on version number to determine whether a file
in TFS has changed, but instead look at length, encoding and hash. See further
the TFS section in
Determining Whether a File Has Changed on the
DBUPDGEN page.
-
DBUPDGEN now prints the total execution time as well the
time spent on retrieving files.
- In update scripts, new tables are now sorted before old tables and within
the groups of new and old tables, tables without foreign keys are sorted
first.
- When producing a reload script, DBUPDGEN also reads the new definition of
the table and excludes columns in the old definition not present in the new.
Note that this is not the correct behaviour if a column has been renamed; it
that case you will need to modify the script manually.
- The description on how to
suppress the name-clash check when an object has moved from one subsystem
to another was incorrect with regards to stored procedures due to the
buffering feature. This section has been updated and a check has been added
so that update scripts now will abort if you attempt to change an AbaSql
attribute in the SP section of an update script.
- Enhancments to the
Preppis
preprocessor:
- $INCLUDE is now supported across subsystems, horray! See further the
entry for 2016-08-22.
- A new directive $DEPENDSON which permits you to state that a
stored procedure depends on a table type, so that DBUPDGEN automatically can
include the stored procedure if the table type is changed. (This applies to
table type stored in .tbltyp files, not private
table types which works as before.) This also extends
to triggers, indexes and foreign keys in other subystems than the table, so
that DBUPDGEN does not have to include them in update scripts, just in case. See
the entry from 2016-09-10 for further
details.
- Enchancement to the
directive
$MACRO_LONG: if the parameter NOEXPAND is
given, short macros inside the long macro are not expanded until the long
macro is expanded.
- New predefined macros
&SQL2014
and
&SQL2016
.
- Delimited
Macro expansion. See the entry for
2014-12-30 for more details.
- When applying server-level permissions for
$SERVERPERM or a privileged assembly, AbaPerls now
replicates the server-level commands to all nodes in any availability group
the database is a member of.
- An improvement to the version checks for production and test databases: AbaPerls
now stores an MD5 hash for the files, and
DBBUILD and the update scripts generated by
DBUPDGEN will not perform any version checks if the stored MD5
hash matches the hash computed for the file.
-
DBBUILD now includes files with a pending add operation in
TFS when you use the option
‑use_disk
together with
‑VC
or ‑config
.
-
DBBUILD now only respects
‑use_disk
when you build
from version control for subsystems where you are building without a label or
you explicitly have specified LATEST. See further the entry for
2017-03-20.
-
DBBUILD and the update scripts generated by
DBUPDGEN now check when you connect that you have CONTROL
permission on the database (which is implied if you have membership in the
db_owner role)
- New option for
ABASQL,
‑LoadRequire
that permits you to force load of
$REQUIREd files.
- New file type .mty for Service Broker
message types that are used in more than one .sb
file.
- In Production databases, AbaPerls now considers it to be an error if
there are active conversations related to any of the services in the file.
- A major overhaul of INSFILGEN. Now when you generate INSERT
filea from your Excel book,
INSFILGEN also generates
.srcdata filesm, which are XML files that holds
the pertinent information from the Excel book. You can later recreate the Excel book from the
.srcdata file with
INSFILGEN. The idea is that you would put the
.srcdata files under version control rather
than the Excel books, as the latter are difficult to handle, not the least
with regards to merging. See further the entry for
2015-12-29.
-
SSREPLACE can now implicitly map the current folder to
version-control directory in TFS and in this case, the mapping
determines the workspace in which checkouts are performed.
- New tool
VCDBLOAD to load information under version-control to a full-text
indexed database. This permits for more efficient searches in the source code
than using SSGREP.
- Several changes to PDREP and TBLFIX including support for filtered
indexes, see the entry for 2014-01-03.
Documentation Changes
Updated the instructions for
VisualStudio and TextPad. Specifically, you should use
$(ItemFilenName)$(ItemExt)
for Visual Studio and $FileName
for TextPad so that
ABASQL
only sees the file name and not the full path, as this works better with
TFS.
L1.0.0294 – 2013-06-14
Changes with Prerequisites etc
- SQL 2000 is no longer supported. SQL 2005 SP2 or later is required.
- You now need version 2.008 of
Win32::SqlServer
. This version is bundled
with the release, but you need to upgrade your Perl installation with as
described in the installation
page.
- AbaPerls now comes with binaries for
Win32::SqlServer
and
Win32::CLR
for
Perl 5.16.
- AbaPerls now supports Team Foundation Server 2012.
- You should run update scripts to update databases to version L1.0.0290 to
get benefit of all new features.
Compatibility Issues
- The format for update scripts generated by
DBUPDGEN is now 3.5.
- AbaPerls now produces errors or warnings for a number of questionable
T‑SQL usages:
- Missing or superfluous parameters in calls to stored procedures and
other issues with regards to parameter profile as described on the new
Object Checking page.
- Constraints in permanent tables should be named, while constraints in
temp tables should be unnamed. AbaPerls thinks that columns of the types char,
nchar, varchar, nvarchar, binary, varbinary,
decimal, numeric, datetime2, time and
datetimeoffset should always have explicit length, precision and/or
scale. See the section Checks for
CREATE TABLE on the file-load page for details.
- Comparisons like
= NULL
is now always an error.
- Use of SET ROWCOUNT is now an error in update scripts.
- AbaPerls now only reads a file that is in version-control if you have it
checked out.
- AbaPerls now adds an initial
^
and a closing $
to
the regular expression in grant.template, so that
the regexp must match the object from start to end. Previously the pattern
zz_.*
matched fuzz_sp, but it no longer does. (This is in
agreement with that the examples for grant.template
have said all through the years.)
- The option
‑sptwice
with DBBUILD is now obsolete due to other
improvements to DBBUILD.
- When loading an .ix file, AbaPerls will drop indexes not present in
abasysobjects at all. (This was the documented behaviour, but it just wasn't
implemented that way.)
- PREP95 has been renamed to PDREP. PDREPDIV has been removed.
Deprecations
- This is the last version of AbaPerls to support the configuration options
‑Adefaults
, ‑Anulls
, ‑Apadding
, ‑Aquoted
and ‑subscriber
. In the future,
AbaPerls will always run with all ANSI settings on.
- Use of the option
‑VSS
is deprecated.
Documentation Changes
Functional Changes and Bugfixes
- Introducing the sysdef-file, SYSTEM.DEFINITION. This is a file where you
can define your subsystems, their paths, their build order and how they may
refer to each other. A config-file can be defined from a sysdef-file. This
makes it easier to enforce that subsystems have the same name in all
databases. See further the changes
2012-06-13 and
2013-04-04 and the topic
Sysdef-files and Config-files.
- If you use TFS, AbaPerls can map your disk directory to a directory in
TFS, relieving you from having to specify
‑VC
. If you also have a
sysdef-file, AbaPerls can also automatically deduce the subsystem. (2012-06-13)
- You can now have grant.template on version level, so that you can use the
same grant.template for many subsystems. (2012-06-13).
grant.template now also applies to assemblies, scalar types, rules and
defaults.
- General changes to the AbaPerls Lookup
Order. (2012-06-13)
- Vast improvements to Object Checking. AbaPerls
now detects errors in stored procedure calls. (Missing
mandatory parameter, extraneous parameters, incorrect use of OUTPUT etc.) (2013-04-04)
- When you load a .tbl file, and there is data in the table, AbaPerls now
loads the definition into a temporary schema, and then AbaPerls attempts to
build ALTER TABLE statements to bring the existing table in sync with the new
definition. If this is not possible, AbaPerls raises an error. See further
Pre-SQL Analysis: Reloading a Table
on the file-load page.
- The same applies to types, table types and XML schema definitions, except
here AbaPerls will always raise an error if the definitions are different.
- More quality checks for CREATE TABLE statements, see Checks for CREATE TABLE.
- AbaPerls now understands storage properties like fill factor, partitioning, compression
etc. You can use them in CREATE TABLE and CREATE INDEX statements. If you
reload a table, AbaPerls will preserve settings not mentioned in the script.
See the new topic
Storage Settings for Tables and Indexes
for details.
- It is now possible to have files in a subsystem that are loaded only if
another subsystem is present. (2012-06-13)
- AbaPerls no longer flags use of
*=
and =*
as an
error, nor does it produce warnings for multiple columns on the same line. (2012-03-23).
- Changes to DBBUILD: new option
‑restruct
, which permits you to rework the
subsystems in the database entirely. ‑rebuild
no longer skips tables and
types. New option ‑revokeall
to be used with ‑rebuild
/‑restruct
to remove all
existing permissions (2012-08-16). You
no longer need the option ‑sptwice
, because DBBUILD automatically reloads all
stored procedure in a subsystem that had references to procedures that were
loaded later. (2013-04-04)
- Changes to DBUPDGEN:
- Rather than renaming a table by adding the old_ prefix, update scripts
generated by DBUPDGEN now moves the table to the schema
AbaPerls$SideSchema. (2012-02-20)
- New update scripts first attempt to load a changed .tbl file and only
enters the rename-and-copy loop if ALTER TABLE fails. (2012-08-24)
- Just like DBBUILD, update scripts automatically load stored procedures
with references to stored procedures loaded later a second time. (2013-04-04).
- For tables with IDENTITY columns, update scripts now make sure that the
current IDENTITY is brought over in the rename-and-copy loop for a table
update. (2013-04-04)
- Update scripts now fail if you provide arguments that are not options.
- AbaPerls now supports columnstore indexes. There is also a very weak
support for spatial indexes and XML indexes. (2013-02-12).
- TBLFIX and PDREP (previously called PDREP95) now supports PowerDesigner
16. (2012-09-28)
- SSGREP can now read inputs from a file with the
‑input
option and send
the result of the search to database. (2012-05-07
and 2012-05-10)
Bugfixes
Yes, there have been bugfixes. Please review the full
Revision History for details.
L1.0.0262 – 2012-02-12
This is a release of AbaPerls that includes quite a few changes, both in AbaPerls itself and how it is delivered. The big news from a functional point of view is that AbaPerls now supports Team Foundation Server.
Changes with Regards to Download, Installation and Prerequisites
Because of the changes in prerequisites and how AbaPerls is installed and downloaded, I recommend that you read the topic Downloading and Installing AbaPerls in full. Note that the page Running AbaPerls on Your Machine has been removed and the contents is included in the page Downloading and Installing... Here is a summary of the changes:
- I no longer provide a SourceSafe archive for download; the sole option is the file archive abaperls.zip.
- The download now includes install kits for all required update scripts for the ABAPERLS subsystem as well as an install kit for a new database. You should update the ABAPERLS subsystem to label L1.0.00250.
- Changes in prerequisites:
- You now need Perl 5.12 or later.
- You now need one more additional Perl module,
Win32::CLR
. To make the Perl installation
easier, the download for AbaPerls includes both Win32::CLR
and Win32::SqlServer
.
- For Visual SourceSafe, I now require Visual SourceSafe 2005 with the service update that Microsoft released in 2007.
- This version still supports SQL Server 2000, but it will be the last version to so. (And this release of AbaPerls has not been much tested on SQL 2000.)
- You need to have .Net Framework 2.0 or later installed.
Compatibility Issues
There are a couple of changes that may cause compatibility issues with older versions of AbaPerls:
- The format for update scripts generated by DBUPDGEN is now 3.4.
- There are changes to the format of SS‑FILES.LIS and SUBSYSTEMS.LIS. This version of AbaPerls should (hopefully!) be able to read any existing files. However, if you generate these files with the new version of AbaPerls, and then try to feed them to an old version of AbaPerls this will give funky results. I've added a version check for these files, so any such change in the future will be handled more gracefully, but the old version of AbaPerls did not check the version of the format, so it will misinterpret the files.
- The configuration option
‑charset
has been dropped, as it did not work. (And probably hasn't for quite some time.)
- Because of the support for TFS, the format of a VC-path (previously known as an SS-path) has changed. The changes are largely backwards compatible, but misspelling may cause error messages that relate to TFS. See the section The VC-Path in the page Version-control Concepts for details.
- There are several places where AbaPerls is now stricter and does not permit things that previously were permitted. For instance, you cannot run a script without a to-label in a database marked as a test or production.
- AbaPerls now disallows the use of TOP with INSERT, UPDATE, DELETE and MERGE. AbaPerls also frowns at the use of SET ROWCOUNT.
Deprecations
This is a list of features that now are deprecated.
- The configuration option
‑subscriber
. Most likely, the next public release of AbaPerls will not include this option.
- The config-options for ANSI settings. Most likely, the public release of AbaPerls will not support these options.
- Support for SQL Server 2000. The next version of AbaPerls will not support SQL 2000.
- The command-line option
‑VSS
has been renamed to ‑VC
. You can still use ‑VSS
, but this is deprecated and will be removed some time in the future.
Documentation Changes
- In the documentation, I now use a special font for file paths.
- There are some terminology changes due to the new support for TFS. The AbaPerls documentation now consistently uses directories to talk about folders on disk or in TFS or projects in SourceSafe. The term version-designator has been replaced by version specification. What was known as SS-path is now called VC-path.
- All AbaPerls tools now print a message to state which version you are using and a link to where the documentation is installed.
- If you want to use AbaPerls with TFS, please read the topic Notes on Team Foundation Server.
Functional Changes
Beyond the support for TFS, there are quite a few things:
- Support for Service Broker. You define message types, contracts, queues, server and broker priorities in .sb files that you put the SERVICEBROKER directory in the AbaPerls directory structure. See further the page Service Broker in AbaPerls.
- AbaPerls is now able to read files in Unicode format (UTF-8 or UTF-16), and can also handle names with non-ANSI characters except for BCP-files. Note that you can only use 16-bit names with TFS; SourceSafe supports 8-bit names only.
- There was a hidden problem all through the years with AbaPerls: if two developers used different paths to the same repository (e.g. a SourceSafe database), this could cause the version checks for production and test databases to raise false alarms. AbaPerls now addresses this by storing an identifier that is known to identify the repository in a new system table and use this identifier for the check. (2011-12-09)
- Two new commands NEWLABEL and TFSLABELFIX. NEWLABEL sets a label on the AbaPerls format LetterMajor.Middle.Minor and can compute the label for you. TFSLABELFIX is, as you may guess, TFS-specific.
- LISTERRS has been completely rewritten and is now able to read concatenated logs and can filter out a file from display, if it loads successfully in a later log. When you create a log file with any of the AbaPerls tools ABASQL, DBBUILD of update scripts, you can prepend ++ to the file name, to instruct AbaPerls to append to an existing log file, rather than overwriting it. (2012-01-10)
- There are several minor improvements to object checking. (2012-02-07 has the most of them but not all.)
- AbaPerls now supports included columns for the CREATE INDEX statement.
- AbaPerls now supports creating user-defined aggregates in the CLR with the CREATE AGGREGATE statement.
- You can now leave out /sql in the version-control path with ABASQL.
- Two new predefined macros:
&SQL2008R2
and &SQL2012
.
- Several minor enhancements to DBUPDGEN. Particularly, the update scripts now always create a reload script from the clustered index. (2010-11-22, 2011-05-10, 2011-10-06, 2011-10-16 and 2012-01-10 )
- INSFILGEN how handles the extensions .xlsx and .xml on equal footing with .xls. There are few also more bug fixes to INSFILGEN.
- Several changes to the AbaPerls system tables. (2011-05-10 and 2011-12-09.)
L1.0.0190 – 2010-10-24
To install Perl code and documentation, apply
standard procedures. There are two
update scripts you need to run: ap_up_1-0-0080-0140.pl and ap_up_1-0-0140-0170.pl.
Changes in summary:
- Two new Preppis macros $DBPERM and $SERVERPERM. They permit you to
encapsulate permissions which cannot be granted through ownership chaining,
for instance permissions needed for dynamic SQL or BULK INSERT. See the new
topic Modules with Special Permissions
for more details.
- The macro $DLLINCLUDE now takes an argument which specifies the assembly
permission. This permit you to install privileged assemblies even if the
database is not marked as trustworthy. See the topic
Privileged Assemblies on the CLR
page for details.
- Support for table types and XML schema collections. You can either define
them in files on their own, or together with a stored procedure or
user-defined function. In the latter case, the type is private to that
module. (2010-09-01)
- Rather than storing DLLs built elsewhere, you can now pass AbaPerls
source files written in C# or VB .Net to create the assembly this way. This
makes it simpler to use CLR procedure/functions that consists of a single
file. (2010-09-01)
- New option for DBBUILD:
‑tablesfirst
. This option specifies an alternate
build order where tables and views in all subsystem are built before any
functions or procedures are loaded.
- If you run DBBUILD
‑rebuild
for a single subsystem, AbaPerls now clears the
settings configuration settings only for that subsystem, and leaves global
settings and settings for other subsystems unchanged.
- DBBUILD and DOBCP now use the
‑q
option with BCP to set the setting
QUOTED_IDENTIFIER (which for some reason is not on by default with BCP.)
- AbaPerls now supports use of WHERE clauses in the
definition of index and statistics, so-called filtered indexes.
- Changed the AbaPerls file-lookup order,
so that AbaPerls now looks for the file in a subsystem directory before
trying a an AbaPerls SQL directory
structure on the same level.
- ABASQL now masks any password
when printing the command-line options.
- RUNSPS is now able to read
regular Excel books, and is not constraint to CSV files. Older
CSV files still work with RUNSPS,
as long as Excel can read them.
Bugfixes:
- DBUPDGEN no longer complains
if the
‑VSS
option disagrees with the project in
the file, if the only difference is that one of them has /SQL
and the other not.
- RUNSPS would loop indefinitely
if you did not supply any parameter definition at all. This has been fixed.
- When you had expressions with .nodes(), AbaPerls could produce a
internal error about too many iterations. This problem has been fixed.
L1.0.0091 – 2009-01-02
AbaPerls is again publicly available, now under the Perl Artistic License.
To install Perl code and documentation, apply
standard procedures. To get the
database up to date, there are two update scripts you need to run: ap_up_1-0-0052-0080.pl and ap_up_1-0-0080-0081.pl. Very important! The first script does
not run on SQL 2005 RTM and SP1! (Because of an issue with sp_rename). It does run on SQL 2000, SQL 2005 SP2 and SQL 2008.
Changes in summary:
Bugfixes:
- Fixed connection problems when a database had special characters in the name.
- Because of changes in SQL 2005 SP2, LISTERRS
failed to list calls to missing stored procedure. This has been fixed.
- Fixed bug in aba_check_column, so that it now correctly returns 0 when
‑noexec
is in effect.
L1.0.0060 – 2008-01-12
A lot has happened since the last external release. To begin with, there are
no more public release, only external releases, available only by request and
only if you sign a license.
Next important thing: you need to ensure that you have Perl 5.8. Download the
latest 58x build of Perl from
http://www.activestate.com. AbaPerls now uses my new client API for SQL
Server access: Win32::SqlServer. Get it from my
web site and follow
the instructions.
To install Perl code and documentation, apply
standard procedures. To get the
database up to date, there are three update scripts you need to run:
ap_update_1-0.0042.pl, ap_up-1-0-0042-0052.pl and
ap_up_1-0-0052-0053.pl. Be sure to back up your database before you go
ahead.
Support for SQL 6.5 and SQL 7 has withered over the years, and after this
release I do not plan to support these versions at all.
Important changes in summary. For details, see the detailed history.
- AbaPerls can now work with SourceSafe 2005. Previously, this was
prevented by glitches in the SourceSafe API.
- AbaPerls now considers missing objects an error under most
circumstances. In the same vein, it's an error if the file name and obejct name
disagree. (2005-01-19)
There were situations where you previously were permitted to override checks
with
‑force
, but where this possibility has been
removed. (2006-11-20).
- AbaPerls now checks that the client version is not behind the datrabase,
and ABASQL always print the current
label. (2005-12-28)
- It's now compulsory to specify subsystem for INSERT
‑files
and other
object-less files. (2005-12-28).
- AbaPerls now checks for old-style outer join and improper use of
NULL. (2005-01-19
and 2005-02-01.)
- You can now classify your databases as DEV, TEST
or PROD, and AbaPerls will be more strict about what
you can do in test and production databases. Development databases are as
before. (2005-12-28.)
- Support for CLR assemblies and CLR objects added as well some limited
support for Service Broker (2006-09-20).
- The Preppis directives
$MACRO_LONG and $ENDMACRO
are now implemented.
- There are several changes how
$INCLUDE and
$REQUIRE are handled, and
they are only permitted for certain file types. (2006-11-20).
- DOBCP now has native as default
and uses format files by default. (2006-10-18).
This also affects DBBUILD (2006-10-27).
- New cool option for SSGREP:
‑crossref
that print matches per unique string.
- Enhancements to LISTERRS,
removes the need for DBBUILD to
load stored procedures twice. However, there is an option
‑sptwice
to enforce this, to get better dependency
information. (2005-10-28).
- DBBUILD and scripts generated
by DBUPDGEN no longer sets the
database in simple recovery. (2007-06-05)
L1.0.0040 – 2004-10-31
The fourth public release. To install Perl code and documentation, apply
standard procedures. There is an update
script, ap_update_1.0.0031.pl, which starts at L1.0.020, so if you come
from the second public release, you can skip the script for the third release.
The only database change since the third release is in minor bugfix in
ap_sob_report_suspects_sp.
I now have a new mail address: esquel@sommarskog.se.
Important changes in summary, for details, see the detailed history.
- AbaPerls now checks for name clashes between subsystem. (2004-09-10)
- AbaPerls now permits you to have a trigger, index and foreign-key files
in other subsystem than the one that defines the table. For this reason
‑subsystem
is now mandatory with
ABASQL when you these file types. (2004-09-10)
- You can now restrict SSGREP and
SSREPLACE to files of a
certain type or langauge. (2004-07-06).
- LISTERRS now know how to read
log files from update scripts from DBUPDGEN.
(2004-05-19)
- Minor improvements to update scripts generaged by
DBUPDGEN. (2004-07-05
and 2004-07-08)
L1.0.0030 – 2004-05-03
The third public release. To install Perl code and documentation, apply
standard procedures. To upgrade the
databases, run the script ap_update_1.0.0025.pl. (There are no changes
between L1.0.0025 and L1.0.0030; the latter is only a release label.) If you
have not applied the update script for the second public release, L1.0.0021,
you first need to run ap_update_1.0.0020.pl. You can run the AbaPerls
tools against databases of lower labels. There are no table changes in this
release.
Important changes in summary, for details, see the detailed history.
- AbaPerls now substitutes user-defined types in temp tables and table
variables with their definitions and therefore DBBUILD no longer adds any
types to tempdb and model. In the same vein, AbaPerls adds a COLLATE
clause to all character columns in temp tables and table variables,
voiding the pain of mixing collations on a server. (2003-11-12)
- AbaPerls now checks that the objects in a file matches the name and the
extension of the file, and issues a warning if not. In the next
release, expect this warning to be an error! (2003-11-22)
- AbaPerls now supports indexes and triggers on
views and to this end there are two new
suffixes: .VIX and .VTRI. (2004-05-02)
- AbaPerls now supports the command CREATE STATISTICS; you
place statistics definitions in the same files as indexes. (2004-05-02)
- New tool NEWSUBSYSVER that packages the
procedure to create new version directories.
(2003-08-12)
- Several other minor changes to DBBUILD,
INSFILGEN,
DBUPDGEN and the update scripts and to
the config-file and
configuration options..(Various
dates)
L1.0.0021 – 2003-04-21
This was the second public release of AbaPerls. This release had significant
database changes. This release also added
support for controlling various SET
options for ANSI compatibility. To get full support for these features, you
need to update your databases to L1.0.0020; however AbaPerls will still work
against databases with version L1.0.0009.
L1.0.009 – 2002-11-03
This was the first public release of AbaPerls.