-
Notifications
You must be signed in to change notification settings - Fork 102
/
dbext.txt
4162 lines (3680 loc) · 184 KB
/
dbext.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
*dbext.txt* For Vim version 7.0. Last change: 2016 Jan 03
VIM REFERENCE MANUAL
by
David Fishburn <dfishburn dot vim at gmail dot com>
Peter Bagyinszki
Database extension plugin (dbext.vim) manual
dbext.vim version 23.00
For instructions on installing this file, type
:help add-local-help
|add-local-help| inside Vim.
Homepage: http://vim.sourceforge.net/script.php?script_id=356
*dbext* *dbext.vim* *db_ext* *db_ext.vim* *database-extension* *pgsql* *mysql*
*asa* *ase* *ingres* *interbase* *sqlite* *sqlsrv* *ora* *oracle*
*db2* *DBI* *ODBC* *sqlanywhere* *firebird*
1. Getting Started |dbext-getting-started|
2. Whats New |dbext-new|
3. Overview |dbext-overview|
4. Installation |dbext-install|
5. Configuration |dbext-configure|
5.1 Displaying Results |dbext-configure-results|
5.2 Script Variables |dbext-configure-variables|
5.3 Database Specific Options |dbext-configure-options|
5.4 DB2 Modes |dbext-configure-db2|
5.5 DBI Installation |dbext-configure-dbi|
6. Mappings and commands |dbext-mappings|
7. Adding new database types |dbext-newdb|
8. Prompting for input parameters |dbext-prompting|
9. Setting up connection information |dbext-connect|
9.1 Connection Parameters |dbext-connect-parameters|
9.2 Prompting for Parameters |dbext-connect-prompting|
9.3 Connection profiles |dbext-connect-profiles|
9.4 Connection profile examples |dbext-connect-profiles-examples|
9.5 Connection information in modelines |dbext-connect-modelines|
9.6 Asking for connection parameters |dbext-connect-ask|
9.7 Using autocmds to setup parameters |dbext-connect-autocmd|
10. Creating mappings using dbext commands |dbext-in-mappings|
11. Object Completion |dbext-completion|
12. Listing Objects in the Database |dbext-list-objects|
13. Plugin integration |dbext-integration|
13.1 OMNI completion integration |dbext-omni-completion|
13.2 Intellisense integration |dbext-intellisense|
14. Filetype support |dbext-filetypes|
14.1 Using filetype support |dbext-filetypes-using|
14.2 Adding new filetypes |dbext-filetypes-adding|
15. Using SQL History |dbext-history|
16. Open Source |dbext-sourceforge|
17. Tutorial |dbext-tutorial|
17.1 Creating the connection |dbext-tutorial-connection|
17.2 The result buffer |dbext-tutorial-results|
17.3 Executing commands |dbext-tutorial-execute|
17.4 Selecting from tables |dbext-tutorial-select|
17.5 Describing objects |dbext-tutorial-describe|
17.6 Connection Profiles |dbext-tutorial-profile|
17.7 Login Script |dbext-tutorial-login|
17.8 Listing object |dbext-tutorial-objects|
17.9 Object Completion |dbext-tutorial-completion|
17.10 Host variable replacement |dbext-tutorial-variables|
17.11 Filetype support |dbext-tutorial-filetype|
17.12 History |dbext-tutorial-history|
17.13 DBI Tutorial |dbext-tutorial-dbi|
{Vi does not have any of this}
==============================================================================
1. Getting Started *dbext-getting-started*
The following different databases are supported by dbext:
SAP Sybase SQL Anywhere (SA/ASA)
SAP Sybase IQ
SAP Sybase Adaptive Server Enterprise (ASE)
SAP HANA
SAP Sybase UltraLite (UL)
Oracle
Oracle RDB
SQL Server
MySQL
PostgreSQL
DB2
Firebird
Ingres
Interbase
SQLite
If you have a Perl enabled Vim and install the required packages then any of
the databases supported by DBI or ODBC are also included.
NOTE: Connecting through the Perl interface is much faster than they other
database types. SQL Anywhere is supported either way, I always connect to it
via DBI as once the shared library is loaded the access is nearly instant and
a new database connect need not be made on each request.
If you are looking for a tutorial that will take you through the
features and the "best way" to use this plugin start here |dbext-tutorial|.
This tutorial is a must before beginning to use dbext.
If you have used dbext for a bit and want to start using some more of it's
advanced features you can read this entire document.
dbext is also integrated with the OMNI SQL Completion script which is
included in the Vim distribution. See :h |omni-sql-completion|
The sqlcomplete.vim plugin is occasionally updated before a new
release of Vim and newer versions of this file can be found here:
http://www.vim.org/scripts/script.php?script_id=1572
You can also post questions to the Vim mailing list. I routinely monitor
the list. Comments, feedback and suggestions are always welcome.
David Fishburn
==============================================================================
2. What's New *dbext-new*
Version 23.00 (Dec 30, 2015)
New Features
------------
- Added a new database, CrateIO (Mathias Fussenegger)
- CRATE native database type and Crate via DBI are supported
- Updated the DBI SQLAnywhere procedure list to respect the option of whether
to include the object owner names
- Added a new public function, DB_DictionaryDelete, to be used by the
OMNI SQL Completion plugin (autoload/sqlcomplete.vim, which is part of Vim)
Bug Fixes
---------
- helptags reported duplicate tag MyProjectDir, updated documentation as a
work around as there is no way to escape the real syntax (pull #3) (mexpolk)
- For PGSQL, use the "schemaname" column rather than "tableowner" (pull #15)
(Stefan Litsche)
Version 22.00 (August 2, 2015)
New Features
------------
- Overhauled the prompting for SQL statement variable substitution (i.e. host
variables, named parameters, question marks, ...). The actions and user
interface are hopefully more clear, useful and efficient. For a full
updated tutorial on how it works see :h dbext-tutorial-variables
- Saved variables can now hold multiple values for the same parameter,
see :h dbext-tutorial-variables for how it works.
- Added C++ language support for variables (pull #12) (Anatolii Sakhnik).
- Added the ability to specify special characters (i.e. "\t") for column
delimiters when using ODBC or DBI database types (Michael Krnac).
- Added new option, "passwd_use_secret", which is used when entering a
password, if the value should be masked. When using a GUI version of Vim,
the prompt is not displayed in a dialog unlike the other parameters. This
option is OFF (0) by default. (pull #13) (petteja)
- Added new option, "strip_into", which is used when executing statements
which have variable assignments using the INTO clause. To test these
queries, you need to remove the INTO clause so that when they execute the
query you can see the result set returned. This was on for all databases,
but for TransactSQL or TSQL databases like SQLSRV and ASE, stripping the
INTO clause may be the wrong action. Now it can be controlled using this
setting. This can also be set / overridden using DBSetOption strip_into=1
or as part of a dbext profile.
- Added new option, "strip_at_variables", which is executing statements which
have variable assignments in the SELECT list instead of the INTO clause.
To test these queries, you need to remove the assignments when they execute
to see the result set returned. This was on for all databases, but for
TransactSQL or TSQL databases like SQLSRV and ASE, stripping the variable
assignments in the SELECT list is required. This can be controlled via this
setting. This can also be set / overridden using
DBSetOption strip_at_variables=1 or as part of a dbext profile.
Bug Fixes
---------
- Minor correction to DBSetVar example (Cedric Simon).
- When deleting a buffer, all syntax highlighting of your existing
buffer is sometimes lost, which was a problem with one of the
dbext autocmds (Anatolii Sakhnik).
- Update Postgres get column list join conditions (pull #9) (Dickson S. Guedes).
- dbext autocmd for checking for modelines messed up the jumplist (Justin M.
Keyes)
Version 21.00 (February 1, 2015)
New Features
------------
- Added new database, SAP Sybase IQ.
- Added ability to describe SAP HANA stored procedures using DBI/ODBC.
- Added new command, DBProfilesRefresh, which will repopulate the profile
list from your global variables without having to restart Vim.
- Updated dbext profiles and modelines to accept special characters (\t) as
the column delimiter for DBI connections (Josef Fortier).
Bug Fixes
---------
- Sometimes after setting a connection profile would still prompt you the
first time you attempted to use the connection.
- For PostgreSQL, check for .pgpass on *nix variants and pgpass.conf on
windows (Collin Peters).
- Some connection parameters were overridden incorrectly when first applying
the dbext_default_profile (Lyude, Martin Chabot, Will Wyatt, Bruno Sutic).
- Worked around an issue with the vim-gitgutter dbext plugin (airblade).
- There were 3 places where we fetch Vim's variables to check for dbext
profiles and other dbext settings. These have changed these to fetch only
Vim's global variables to reduce the amount returned and hopefully increase
the response time (Michael Jansen).
Version 20.00 (September 24, 2013)
New Features
------------
- Added new DBI/ODBC option DBI_max_column_width to restrict the width
displayed in the DBI result window (Luke Mauldin).
- Improved the pattern used to find the query under the cursor. Besides
finding the command terminator, it will also look for the first blank
line or the end of the file (Jason Quirk).
- The dbext menu now uses the maps rather than calls to the commands.
A new option will control this behaviour, g:dbext_map_or_cmd.
- Changed the default SQLite binary to be sqlite3 instead of sqlite
(Greg Kapfhammer).
- Added a profile example for using the "sqsh" binary to connect to
SQL Server instead of "osql" (Brian Iván Martínez).
- The cmd_terminator displayed under Connection Options in the DBGetOption
output was always blank.
- Improved support for SAP HANA database, pulling objects from the system
catalogue.
Bug Fixes
---------
- Controlling the DBI max rows (:DBSetOption DBI_max_rows=100) and DBI
column separator did not work on a per buffer basis.
- Undefined variable, s:dbext_prev_winnr, was reported when using DBI/ODBC
connections through the sqlcomplete plugin and completing objects
which require an active database connection (i.e. Tables,
Procedures, ...) which had failed to connect to the database.
- dbext was not prompting for ? parameters in PHP files. This also
affected all languages (Jérémie).
- Changing a database's global cmd terminator was not necessarily
picked up when using that database type (Jason Quirk).
- ODBC or DBI could report an error about using length() instead
of scalar() (Micah Duke).
- Various errors on Linux with DBI (Micah Duke).
- Using the console version of Vim displayed a number of "debug" messages
during initialization.
Version 19.00 (April 29, 2013)
New Features
------------
- Added support for parsing C# files (Raul Segura Acevedo).
- Updated the PostgreSQL message when the .pgpass file is
missing (Dav Clark).
Bug Fixes
---------
- When prompting for connection parameters a second time, the previously
chosen profile number was not defaulted.
- If a dbext login script was stored in the $HOME directory it would
never be found (Tim Teufel).
- The first host variable was prompted for replacement, but the
second one was not (Stanimir Mladenov).
- Selecting a visual region with leading and ending double quotes (like
a table name) could report invalid arguments for the following
commands: DBSelectFromTable, DBSelectFromTableTopX, DBDescribeTable,
DBDescribeProcedure, DBListColumn
- For DB2 on the mainframe the command line utilities do not support the
-t switch. If you override the buffer specific cmd_terminator setting and
set this value to an empty string the -t will be left off. This can be
most easily specified in a dbext connection profile (Michael McDermott):
let g:dbext_default_profile_MyDB2 = 'type=DB2:user=me:passwd=mypass:dbname=SSD:cmd_terminator='
Or while within a buffer:
DBSetOption cmd_terminator=
DBSetOption cmd_terminator=;
Version 18.00 (Nov 28, 2012)
New Features
------------
- Added support for parsing C# files (Raul Segura Acevedo).
Bug Fixes
---------
- Changed the Oracle calls to SQLPlus from using single quotes to using
double quotes (David Sweeney).
- The <Leader>sbp and <Leader>tcl mapping were missing with version 17.00.
- The DBI interface could report: "E15: Invalid expression" when retrieving
table lists from DB2, but this could also affect other SQL commands
that returned strings surrounded in double quotes (Charles McGarvey).
Version 17.00 (Oct 10, 2012)
New Features
------------
- Added new database type, the SAP HANA in memory database.
- Added new option, ignore_variable_regex, which is used when parsing your
statement for replaceable input parameters (i.e. placeholders for prepared
statements). Certain variables need to be skipped (for example when
running a CREATE PROCEDURE statement) to leave the logic inside the stored
procedure intact. This option allows the user finer control over the regex
used to decide which SQL syntax should be skipped.
- Added new option, statement_starts_line, which is used when deciding if
the query should be parsed for input parameters. Certain filetypes assume
the statements can be embedded within strings (like in Java, PHP, Perl and
so on).
- When parsing PHP and Java files, leading and trailing quotes are stripped
automatically when executing the query, which could lead to incorrect
results. First check if there is a leading quote. If so, then only strip
the corresponding closing quote.
- Updated documentation describing the default regex for variable_def_regex.
- Added new option g:dbext_map_prefix which defaults to <Leader>s, this allows
you to customize the start of all the default maps (Daniel Hahler).
Bug Fixes
---------
- The default value for variable_def_regex, did not properly escape
the $, which lead to some query parameters being skipped when
executing SQL.
- It was impossible to search and replace input parameters within
a query if the parameter was enclosed in single quotes. The above
new features were required to make this possible (Joshua Dennis).
- DBCompleteTable, DBCompleteProcedure, DBCompleteView would always
recreate the object list. If it has already been created, it should
simply reuse what was available. To force the recreation you add
the bang to the command: DBCompleteTable!, DBCompleteProcedure!,
DBCompleteView!.
- Even with the checks it was possible for dbext to report:
E227: mapping already exists for ... when creating maps where the
mapping already exists (Daniel Hahler).
Version 16.00 (Jun 12, 2012)
Bug Fixes
---------
- For Oracle databases, the SQLPlus command had unmatched quotation marks
which could lead to errors displayed by dbext indicating it could not
open the file to execute the SQL (JustinF Zhang).
Version 15.00 (May 2, 2012)
New Features
------------
- A new database configuration parameter, g:dbext_default_DBTYPE_extra, is
available to allow the user to customize command line parameters passed to
the database binary used to execute the statement. This can be overridden
affecting all new connections via your .vimrc. Or for a specific buffer
via connection profile or :DBPromptForBufferParameters (Ken Inglis,
Michael Berkowski).
Bug Fixes
---------
- The dbext menu for List Variables displayed the wrong mapping.
- For SQLite databases, if no database is specified now a warning message
is displayed instead of an error message.
Version 14.00 (Apr 5, 2012)
New Features
------------
- For Oracle connection profiles, support this form of server name,
srvname=(description=(address=(protocol=TCP)(host=dbhost.our.domain.com)(port=1521))(connect_data=(server=dedicated)(service_name=gps03tst.our.domain.com)))
(Fredrik Acosta).
- Added a new buffer option to specify which filetype dbext should use when
parsing the query. If an existing language already works as you need
you can tell dbext to use it via the modeline or DBSetOption
(Albie Janse van Rensburg).
- Added an example of a function I use to execute blocks of stored procedures
using dbext's commands.
- For PostgreSQL, dbext will check for the existence of a .pgpass file. If
not found, execution will abort and a warning message will be displayed.
By default $HOME/.pgpass will be validated (Frank Schwach).
Bug Fixes
---------
- When closing or deleting buffers it was possible to loose syntax, filetype
and hidden settings (Alexey Radkov).
- Parsing VisualBasic and Basic variables let to errors in DB_parseVB
(Albie Janse van Rensburg).
- Generating a column list for an ASA database left an extra , at the end
of the list. This also affected the SQLComplete plugin.
Version 13.00 (Jun 13, 2011)
New Features
------------
- Added new command, DBDisconnectAll, for DBI/ODBC.
- DBDisconnect for DBI/ODBC now can accept an optional parameter
for the buffer you wish disconnected.
- DBListConnections also includes the buffer filename in it's output
to help associate the two more easily.
- Updated the default variable_def_regex to include an alphabetic
character after a ":" for host variables to avoid false matches
with time formats "10:20".
- Improved the variable substitution to also check if a variable is
preceded by a single line comment character. If so, ignore the match.
CALL myProc( sl_var1 -- p_var1
, sl_var2 -- p_var2
);
Bug Fixes
---------
- When clearing the results buffer the default register was updated.
- Duplicate tag on MyProjectDir when running helptags (Simon Dambe).
- Some of the variable substitution options Skip, Use Blank had off
by one errors.
Version 12.00 (Jul 15, 2010)
New Features
------------
- A number of changes around the Oracle formating instructions.
Support for packages when describing certain objects.
These changes were provided by Sergey Khorev.
- Improved the parsing of Perl strings when prompting for
variables.
- Made some additional changes to the variable_def_regex for how you
can specify it from Vim modelines and DBSetOption. This makes it
much more flexible.
Bug Fixes
---------
- If the word "profile" was used in a dbext profile name dbext would report
the error: "dbext: Profiles cannot be nested" (Chris Cierpisz).
- Corrected the regex used to find object owner names (Sergey Khorev).
Version 11.01 (Sep 8, 2009)
Bug Fixes
---------
- If a large result set is retrieved, there is a significant performance
delay which was introduced in 11.00. This was related to the new
g:dbext_rows_affected feature (Tocer).
- Error E15: Invalid expression: b:dbext_sqlvar_mv[var] is reported if
you are using saved variables and then modified the query with a new
variable. Now the saved variables are used for the known variables
and you are prompted for the unknown.
Version 11.00 (Aug 23, 2009)
New Features
------------
- When autoclose is enabled, a message is displayed indicating autoclose is
enabled. This message will now also include the number of rows affected
by the last statement (if applicable). This is available for all
database interfaces which can provide this information. Vim scripts or
mappings have access to this value by referencing the g:dbext_rows_affected
variable (Philippe Moravie).
- The Select, Update, Delete, Alter and Drop commands will now complete
table names.
- Revamped the saved variables (see |dbext-tutorial-variables|). dbext
checks your queries and will prompt for variables (see |dbext-prompting|).
dbext uses regular expressions to determine which variables should be
prompted. To see how you can easily extend the regular expressions follow
the tutorial. This replaces the previous method which was too limiting.
The new technique uses Vim's standard regular expressions. This introduces
the variable_def_regex dbext option and deprecates the variable_def dbext
option.
- With the introduction of saved variables, you are now prompted during
SQL execution to determine whether the previously saved variables
should be substituted.
Bug Fixes
---------
- If you re-sourced plugin/dbext.vim you would receive the following error:
E227: mapping already exists for <Leader>sas
- Errors were reported about undefined variable, dbext_sqlvar_temp_mv, if
executing a SQL statement directly from a filetype which was not SQL
(i.e. PHP).
- If saved variables were in use, it was possible for dbext to used the
replaced variables without the user knowing. For example stored
procedures could be created with the replaced strings instead of the
variables.
Version 10.00 (Mar 14, 2009)
New Features
------------
- Added new database support for SQL Anywhere UltraLite (11.x).
- Added new database support for Firebird (2.x).
- Added "@@variable" style to the list of bypassed variable names along
with IN, OUT, INOUT and DECLARE.
- When listing stored variables, you can now remove multiple lines
using visual mode.
- When closing the result window (using "q" or DBResultsClose) you are
intentionally returned to the buffer which opened the window
instead of allowing Vim to choose which window.
Bug Fixes
---------
- The version 9.00 release of dbext broke modeline support.
- When listing variables the following error could be reported:
E121: Undefined variable
- It was not possible to retrieve more than 500 characters from a character
or binary column in the database when using DBI or ODBC. Adding
driver_parms=LongReadLen=4096 now works correctly. You can also
change this after you are connected to the database using
DBSetOption LongReadLen=4096. Running DBListConnections will display
the current setting for each database connection currently open.
Version 9.00 (Jan 10, 2009)
New Features
------------
- Added the ability to set and store SQL variables for each buffer.
This will reduce prompting for statements which are often
re-used. Added support for listing and deleting SQL variables.
Initial prototype by Garrison Yu.
- Added option, g:dbext_default_variable_remember, to control whether
SQL variables should be stored when prompted.
- Improved the parsing of SQL statements to account for procedural
language. If a IN, OUT, INOUT or DECLARE statement is found prior
to the use of the variable, it is stored for later use. When the
variable is encountered, if the declaration was found we skip
prompting for it's value. This should reduce the number of prompts
you receive when executing SQL (i.e. Functions, Procedures, Events,
Packages and so on depending on the naming convention you use for
your variables.
- Updated the tutorial and added more links to different sections
see |dbext-tutorial-variable|
- Added VB filetype support (Garrison Yu).
- Added escaping to allow specifying an new Oracle URL syntax for
server connection parameters (Anton Sharonov).
- Renamed DBCloseResults, DBOpenResults, DBRefreshResult,
DBToggleResultsResize to DBResultsClose, DBResultsOpen,
DBResultsRefresh, DBResultsToggleResize to be more consistent.
Bug Fixes
---------
- DBextPostResult was passed in a string for the buf_nr which required
conversion if passed to Vim's built-in functions like getbuflines
(Ying Chen).
- If g:dbext_default_menu_mode was set to an invalid value an error
would occur when starting Vim.
- Renamed some of the <Plug> names so a delay of timeoutlen is avoided
when using the mappings (DBExecVisualTopXSQL, DBExecSQLUnderTopXCursor,
DBSelectFromTopXTable).
- The dbext menu item "List Connections (DBI)" did not work.
- You are often repeatedly prompted for connection information.
This change reduces the number and allows you to cancel out
of the prompt dialogs.
- Added an unconditional quit command to exit out of Oracle's
SQLPlus (Anton Sharonov).
Version 8.00 (Oct 30, 2008)
New Features
------------
- When defining a profile or running DBPromptForBufferParameters,
you can now optionally specify a file containing commands you want to
execute against the database when you first connect (James Horine).
- A new global variable, g:dbext_default_login_script_dir allows you
to override the 2 default directories which are searched for these
files.
- The dbext tutorial has been updated to demonstrate the login_script
see |dbext-tutorial-login|
- Doc update demonstrating the use of integrated logins (Daren Thomas).
- Added a new user defined autocommand dbextPreConnection which is
triggered prior to dbext connecting to the database. This allows you
to customize settings based on your buffer and environment (Tim Pope).
- Added escaping to allow specifying an new Oracle URL syntax for
server connection parameters (Anton Sharonov).
Bug Fixes
---------
- Setting LongReadLen for DBI and ODBC connections did not work.
- DBextPostResult was passed in a string for the buf_nr which required
conversion if passed to Vim's built-in functions like getbuflines()
(Ying Chen).
- If g:dbext_default_menu_mode was set to an invalid value an error
would occur when starting Vim.
- Renamed some of the <Plug> names so a delay of timeoutlen is avoided
when using the mappings (DBExecVisualTopXSQL, DBExecSQLUnderTopXCursor,
DBSelectFromTopXTable).
- The dbext menu item "List Connections (DBI)" did not work.
Version 7.00 (Sep 21, 2008)
New Features
------------
- Large change between how the error handling between DBI and ODBC
connections were reported and displayed.
- Non-printable characters are now dealt with for DBI and ODBC
connections.
Bug Fixes
---------
- Using ODBC to connect to SQL Server, dbext did not handle informational
messages appropriately leading to "not connected" messages
(Albie Janse van Rensburg).
- When executing SQL if you were prompted for a variable replacement
and cancelled the query the dbext history window was displayed
instead of returning to the buffer you were editing.
Version 6.20 (Aug 9, 2008)
New Features
------------
- None
Bug Fixes
---------
- Changed the DB2 TOP X syntax (DBExecSQLTopX).
- Changed the query used to retrieve the current line for
DBExecSQLUnderCursor when no text is selected (Sergey Alekhin).
- When parsing a SQL statement for host variables it was possible
to miss excluding the INTO clause correctly (Sergey Alekhin).
Version 6.10 (Jun 10, 2008)
New Features
------------
- The result window inherits the connection parameters of the
buffer which last executed SQL (Antony Scriven). For example,
if you retrieve a list of tables, you may want to describe
a table or generate a list of columns for one of the tables.
Using the usual maps will generate the result you need without
prompting for connection parameters. This is especially useful
if you have more than 1 buffer and each buffer connects to
different databases.
- Added the ability to choose where to put the Result window.
When the window is split you can choose vertical or horizontal,
bottom or top, and choose the width of the window for horizontal
switches (Clinton Jones).
- Modified DBExecSQLUnderCursor to select all text until end of
line if no valid command terminator is found rather than just
one letter (David Venus).
- DBGetOption displays the output from :ver for debugging.
Bug Fixes
---------
- Tutorial update (Nico Coetzee).
- Tutorial update (Clinton Jones).
- DBGetOption reported an exception E730: using List as a String.
Version 6.01 (Apr 29, 2008)
Bug Fixes
---------
- On dbext startup an error was reported indicating mapleader was not defined
(Matt).
Version 6.00 (Apr 28, 2008)
New Features
------------
- dbext now supports table and column names which can contain
spaces (Antony Scriven). There is a corresponding change
to sqlcomplete.vim to support this.
- Added an autoclose option. If you execute SQL which does not
return a result set you can choose to have the dbext results
window automatically close (unless of course there was an error).
See the autoclose option for more details.
- Added the map shortcuts to each of menu items under the dbext
menu so that users can learn them more easily (Alexander Langer).
- Using the menu_mode option you can control if and where the
dbext menu is created (Marty Grenfell). See the menu_mode option
for more details.
- For MySQL, added -t as part of the default command line parameters setting.
This will properly format the data into tabs or spaces to make it more
readable (Luke Cordingley).
- A message is displayed indicating the time a SQL command began
executing. The result window also contains the time the SQL
finished executing.
- DBI or ODBC can now fetch BLOB columns from the database. By
default these are truncated at 500 characters, but that can
be changed by issuing: DBSetOption driver_parms=LongReadLen=4096
Bug Fixes
---------
- If a database column had an embedded double quote this would be
displayed as \" in the dbext result window (Jean-Christophe Clavier).
- When loading the plugin, it will now check to ensure the map
does not already exist before attempting to create it. This
will prevent errors when mappings clash (Antony Scriven).
- If you prompt for connection parameters using the DBI or
ODBC types we need to disconnect any existing connections
or the existing connection will continue to be used.
- In some cases when using DBI or ODBC an error was not reported
and only a blank result set was returned. Now the database
error is reported back to the user.
- Data retrieved via DBI or ODBC which contained a backslash
were not escaped properly and could disappear.
Version 5.20 (Sep 15, 2007)
New Features
------------
- When using DBI or DBI::ODBC null fields are now displayed as NULL
instead of empty spaces (now you can distinguish between them).
- When using DBI or DBI::ODBC you can specify the column separator let
g:dbext_default_dbi_column_delimiter="\t" (Jean-Christophe Clavier)
- When using DBI or DBI::ODBC and you use a vertical orientation for the
result set, if there are any embedded newline characters in your
data this will be displayed and shifted to align with the column
above. Prior to this all newlines were stripped from the output
when printing to preserve standard horizontal output (Jean-Christophe
Clavier).
Version 5.11 (Sep 10, 2007)
New Features
------------
- Added support for Oracle Rdb on an Open VMS Node.
For vim on Open VMS look at http://www.polarhome.com/vim/.
For Open VMS http://h71000.www7.hp.com/openvms/.
Development of support by Andi Stern.
Version 5.00 (Sep 3, 2007)
New Features
------------
- Added Perl's DBI and DBI::ODBC support. This opens additional database
support without having to adjust the scripts. You must have a Perl enabled
Vim (:echo has('perl')). Using the DBI layer offers some advantages over
using the native binary tools:
- Transaction support which allows you to maintain a transaction during
your editing session and either commit or rollback any changes.
This is not possible without using the DBI layer.
- Speed improvements, since the database connection is maintained, the
there is less overhead per command. You are also not shelling out
to execute commands but using an already loaded DLL, shared object.
- New commands are available to select only a few rows instead of an entire
result set. In most databases this is referred to as TOP X.
DBExecSQLTopX, DBExecVisualSQLTopX, DBExecSQLUnderCursorTopX have been
added plus associated mappings (Albie Janse van Rensburg).
- Made Cygwin detection a bit easier using the shellslash option (Steve
Gibson).
Bug Fixes
------------
- SQL Server support had issues with the queries when running DBCompleteTable,
DBCompleteProcedure, DBCompleteView which also affected the sqlcomplete.vim
plugin included with Vim7 (Albie Janse van Rensburg).
- Oracle reported "rows will be truncated", added "set linesize 10000" to the
Oracle headers (Stuart Brock)
- When prompting for connection parameters if you choose a profile of "0"
which is no profile, you had to re-run the wizard to prompt for the rest
of the parameters, now the wizard continues as expected.
Version 4.20 (Dec 19, 2006)
New Features
------------
- Improved support for Cygwin. If you are using a Cygwin compiled Vim (on
Windows) and are accessing Windows compiled binaries (i.e. sqlplus.exe)
the binary will complain since it does not understand Unix path names.
Added the option g:dbext_default_use_win32_filenames which allows you to
indicate the binaries must use translated Windows paths instead. (Richard)
- DBGetOption displays more information.
Bug Fixes
------------
- SQL Server support had issues with the queries when running DBCompleteTable,
DBCompleteProcedure, DBCompleteView which also affected the sqlcomplete.vim
plugin included with Vim7 (Albie Janse van Rensburg).
Version 4.10 (Dec 5, 2006)
New Features
------------
- Updated DBGetOption to additionally display a list of all database profiles
and their types. All dbext options that have been overridden via the
vimrc are also displayed.
Bug Fixes
------------
- db2 support had issues with the queries when running DBCompleteTable,
DBCompleteProcedure, DBCompleteView which also affected the sqlcomplete.vim
plugin included with Vim7 (Peter Princz).
- The documentation was still indicating there was a plugin dependency which
has been removed with Vim7.
Version 4.00 (Sep 23, 2006)
New Features
------------
- dbext.vim now requires Vim7.
- dbext.vim required 2 additional plugins multvals and genutil to operate.
These dependencies have been removed by taking advantage of the new Vim7
features (Lists and Dictionaries).
- When using the DBCompleteTable, DBCompleteProcedure, DBCompleteView
commands errors are displayed instead of silently ignored. This makes
them more useful with the sqlComplete plugin (see |sql.txt|).
- Added new option, dbext_default_MYSQL_version, for MySQL to indicate the
version you using.
- You can optionally define a function, DBextPostResult, in your .vimrc, this
function will be called each time the result window is updated. This
function can be used to do anything, for example, syntax highlighting the
result set in the result window.
Bug Fixes
------------
- Added version support with MySQL to control what SQL is sent for version
4 and 5 servers.
Version 3.50 (Jun 20, 2006)
New Features
------------
- g:dbext_default_inputdialog_cancel_support = 0 will prevent
inputdialog from providing a cancel option. This works around
a Vim7 bug. dbext will automatically detect this and set the
option the first time it is encountered.
- Changed the order of some of the text in the dialog boxes to
make them more readable when using the console version of Vim.
- dbext can parse SQL statements and prompt the user to replace
variables with values prior to sending the statement to the database
to be executed. This is useful for testing SQL which is embedded
in your code without having to manually replace variables and string
concatenation. A new identifier (the until flag) allows you to
specify the beginning of a string and what to prompt for until a
finishing string. This makes it more flexible for you to configure
what you would like prompting for when looking for variables.
Bug Fixes
------------
- DBPromptForBufferParameters can report "E180: Invalid complete value: -1"
if running the console version of Vim. dbext will detect this problem
and automatically set g:dbext_default_inputdialog_cancel_support = 0 to
work around this Vim7 bug.
Version 3.00 (May 15, 2006)
New Features
------------
- dbext supports a history of previous commands. The DBHistory
command will display a numbered list of previous SQL statements.
Pressing <enter> or double clicking on one of the items will
execute the statement. The number of items in the list is
configurable via your vimrc. The history items are stored in a
file, dbext_sql_history.txt. The location of the file can also
be controlled.
- The 'refresh' feature added in version 2.30 has been updated to take
advantage of the history feature.
- The PHP parser has improved and can handle single or double quoted
strings, string concatenation and host variables. It will correctly
strip the quotes, join the concatenated strings and prompt the user
for host variables before executing the SQL statement.
- Updated documentation for Vim 7 SQL code completion.
- Table, procedure and view dictionaries include the owner name of the
object. This is on by default, but can be controlled via a new global
option, dbext_default_dict_show_owner. This has not been enabled for all
databases it depends on whether the database supports this feature. The
autoload\sqlcomplete.vim plugin takes advantage of this feature.
- Added support for stored procedures / functions in MySQL 5.
Bug Fixes
------------
- Updated the PHP parser to work with a more varied string quotes and
string concatenation.
- The "extra" feature did not add a leading space for MySQL. Using the
tabbed output required updates to the parsing of the output generated
by MySQL.
- Miscellaneous documentation updates.
Version 2.30 (Sep 13, 2005)
New Features
------------
- The result window has a local buffer mapping 'R', which will 'refresh'
the window. This means it will re-run the previous statement which is
useful if you are repeatedly checking something in the database.
- SQL Anywhere (ASA) no longer relies on the jcatalogue tables to be
installed in the database. System views are used instead.
- Support for MySQL 5.0 has been added, which includes stored procedures
and views (as much as the beta allowed).
- For PostgreSQL you can now optionally enter an owner name to filter by
when showing list of objects (tables, procedures, views).
Bug Fixes
------------
- The |alternate-file| is no longer changed the first time the result buffer
is opened.
- Using DB2 with db2cmd incorrectly specified the command terminator with
td, instead of -t.
- On win32 platforms, if the bin_path has been specified for DB2, then
add this to the system path since db2cmd relies on other batch files to
operate correctly.
- The connection string is displayed by both the Result buffer (first line)
and the titlestring to the buffer (if enabled). This was not correctly
appending the user used to connect to the database.
- When parsing Vim scripts we did not correctly remove a leading line
continuation slash from the from of a query.
Version 2.20 (Mar 10, 2005)
New Features
------------
- Added new connection parameter called "extra", you can place any
additional command line parameters in this option.
- DBGetOption displays all options including the dbext version.
- Better support for command terminators that have newline or special
characters in them. For example ASE/SQLSRV use "\ngo\n", now the
command DBExecSQLUnderCursor will correctly find the statement.
- Use_tbl_alias defaults to "ask", instead of "default on".
- For most supported databases, when displaying the Table / Procedure / View
List, you can now enter a partial string "DBA.", and if a . is included
it will only display objects created / owned by that userid.
- DBExecSQLUnderCursor would sometimes stop in the middle of a query
if the command terminator was included (inside a quoted string), now
it ensures there is no text following the terminator.
- The result window also includes the error code returned by the binary
used to execute the command. This can be useful for debugging.
- The first line of the result window includes a line showing the connection
information, if you have many buffers open, it can be difficult to
determine which database you are executing commands against. A glance at
this line will tell you immediately.
- g:dbext_default_always_prompt_for_variables = 0 will prevent you from
being prompted for substitution parameters. Setting this value to 1
will always prompt the user.
- You can now abort the execution of a statement if you are prompted
for substitution parameters.
- If you are prompted for parameters, if you choose "Stop Prompting" the
command will be executed immediate. If "Never Prompt" is chosen, no
further prompting will occur for this buffer.
Bug Fixes
---------
- SQLSRV did not have a default command terminator, now it is "\ngo\n".
- Changed the Oracle command terminator to ";", and the routine that
executes the statements automatically adds the "\nquit;\n" so that
sqlplus will complete.
- Spaces were not correctly removed from column lists in all cases, this
showed up as an issue with the SQL Intellisense plugin.
- When executing SELECT statements the INTO clause (if present) is
removed so the results are displayed in the result window. Refined the
removal of the INTO clause to ensure it does not interfere with an
INSERT or MERGE statement.
Version 2.11 (Sep 24, 2004)
Bug Fixes
---------
- On some platforms the temporary file created to execute SQL statements must
end in ".sql". Corrected this for all databases
Version 2.10 (Sep 15, 2004)
New Features
------------
- Support for the SQLite database has been added (thanks to Ron Aaron).
Version 2.01 (Jul 22, 2004)
New Features
------------
- Added support for the database SQLite (thanks to Ron Aaron).
- Added a tutorial in the documentation for first time users.
- New functionality for better integration with the Intellisense SQL plugin.
- Ability to change the title of the window/buffer.
- Integrated Login support for windows.
- Added new functionality to these commands: |dbext-mappings|
DBGetOption
DBSetOption
DBExecRangeSQL
- Added 4 new options: |dbext-configure-variables|
replace_title
custom_title
use_tbl_alias
delete_temp_file
Bug Fixes
---------
- dbname was not defaulting correctly.
- Overhauled the DB2 support.
- bin_path did not work correctly on windows platforms.