[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