[freetds] [PATCH] VMS-style native command syntax for fisql, freebcp, and defncopy
Craig A. Berry
craigberry at mac.com
Wed May 26 23:40:48 EDT 2010
I apologize for the size of the attached patch (almost 1700 lines),
but it does something critically important in my environment (which
I'll explain below) and has no effect at all on non-VMS platforms.
I'd really like to see it checked in and would be glad to do further
work to make it acceptable if necessary. If the threatened commit bit
turns up, I'm happy to do the grunt work and save James or Freddy the
effort of getting this into the repository, but it seemed like it
should be mentioned on-list in any case.
What does it do?
It provides a wrapper around fisql, freebcp, and defncopy so that VMS-
style commands on the command line get translated into the Unix-style
commands that the utilities expect. For example, instead of:
% fisql -Sserver -Uuser -Ppass
you say:
$ fisql/server_name="server"/user="user"/password="pass"
Why?
Once upon a time there were Sybase client utilities (not to mention
Sybase servers) on VMS. Where I work we have a large number of
command procedures (what other OS's call shell scripts) that use those
client utilities to push data around among databases, run stored
procedures remotely in coordination with various VMS-centric jobs, or
extract data for further processing and shipping off to various banks,
insurance companies, etc.
Over the years the databases changed from Sybase to SQL Server, and
then higher versions of SQL Server. In the past year (since we
upgrade our VMS hardware every 15 years whether it needs it or not) we
replaced ancient Alpha hardware with shiny new Itanium hardware -- but
there have never been Sybase clients on Itanium.
The only thing that has allowed us to survive all these transitions is
FreeTDS. Obviously other things could have been done, but all of
those things would have been much more difficult and expensive than
coercing the FreeTDS clients into functioning as drop-in replacements
for the old Sybase clients. So that's what we did. The patch here is
a more complete, less intrusive and cleaned-up version of something
we've been running in production for several years.
Some details about what's changed and new follow. I *think* I
included all of the necessary copyright notices and Makefile.am changes.
% lsdiff -s vmscmd.patch
! freetds-0.83.dev.20100522/Makefile.am
! freetds-0.83.dev.20100522/src/apps/defncopy.c
! freetds-0.83.dev.20100522/src/apps/fisql/fisql.c
! freetds-0.83.dev.20100522/src/apps/freebcp.c
! freetds-0.83.dev.20100522/vms/Makefile.am
! freetds-0.83.dev.20100522/vms/config_h.vms
! freetds-0.83.dev.20100522/vms/descrip_mms.template
+ freetds-0.83.dev.20100522/vms/vargdefs.h
+ freetds-0.83.dev.20100522/vms/vmsarg_command_bcp.cld
+ freetds-0.83.dev.20100522/vms/vmsarg_command_defncopy.cld
+ freetds-0.83.dev.20100522/vms/vmsarg_command_isql.cld
+ freetds-0.83.dev.20100522/vms/vmsarg_mapping_bcp.c
+ freetds-0.83.dev.20100522/vms/vmsarg_mapping_defncopy.c
+ freetds-0.83.dev.20100522/vms/vmsarg_mapping_isql.c
+ freetds-0.83.dev.20100522/vms/vmsarg_parse.c
________________________________________
Craig A. Berry
mailto:craigberry at mac.com
"... getting out of a sonnet is much more
difficult than getting in."
Brad Leithauser
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vmscmd.patch
Type: application/octet-stream
Size: 58900 bytes
Desc: not available
Url : http://lists.ibiblio.org/pipermail/freetds/attachments/20100526/979c3314/attachment.obj
More information about the FreeTDS
mailing list