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
|
vmod-dbrw -- history of user-visible changes. 2022-08-21
See the end of file for copying conditions.
Please send vmod-dbrw bug reports to <gray@gnu.org>
Version 2.8, 2022-08-21
* Support for Varnish 7.1
Version 2.7, 2020-04-09
* Drop support for Varnish versions prior to 6.0
Version 2.6, 2020-03-03
* Builds with Varnish 6.3.1
Version 2.5, 2019-02-15
* req.http.X-VMOD-DBRW-Error
This header is set to 1 by dbrw.rewrite to indicate that an error
occurred during the rewrite.
* New flags: regex and eq
One of this flags can appear in the fourth column of the returned data
set. The 'eq' flag instructs dbrw.rewrite to use exact string match,
instead of regular expressions. The 'regex' flag instructs it to use
regular expression matching. It is the default.
* Improve error handling in mysql submodule
Previously, error codes ER_PARSE_ERROR and ER_EMPTY_QUERY were treated
as permanent conditions, causing mysql connection to be closed and
disabled. This is no longer the case, as they both can well mean a
transient condition (e.g. ER_PARSE_ERROR returned for the 'Illegal mix
of collations' error).
Version 2.4, 2018-12-10
* Support for Varnish version 6.0.2
Version 2.3, 2018-12-08
* SQL idle timeout
For MySQL backend, the default connection idle timeout is set equal to
the value of the MySQL variable 'wait_timeout'. For Postgres, default
idle timeout is not yet implemented.
Idle timeout can be configured using the timeout configuration option,
e.g.:
dbrw.config("mysql", "database=dbrw;user=proxy;timeout=600",
{"select dest,pattern,value,flags from rewrite where
locate(url,'$url') = 1 order by weight asc;"});
* The $() functions in SQL templates
The SQL templates support the use of $() constructs for invoking
built-in functions. So far one function is implemented:
$(urlprefixes PATH)
It expands to comma-separated list of properly quoted pathname
prefixes, constructed from its argument. Optional query part is
stripped off the argument prior to expansion. For example
$(urlprefixes "/local/user/local?a=1")
expands to:
'/local/user/local','/local/user','/local'
This construct is intended for use in SQL IN conditionals, for
example:
SELECT dest,pattern,value,flags
FROM rewrite
WHERE host='$host'
AND url IN ($(urlprefixes $url))
ORDER BY length(dest),value,weight DESC
Version 2.2, 2017-08-10
* Support for Varnish 5.1
Version 2.1, 2017-08-06
* Requires Varnish 4.1
* The --with-varnish-source option has been withdrawn
The configure script relies on pkg-config to determine the location of
Varnish header files and libraries.
Version 2.0, 2014-11-13
Support for Varnish 4.0.
Version 1.0, 2013-07-20
Initial release
=========================================================================
Copyright information:
Copyright (C) 2013-2020 Sergey Poznyakoff
Permission is granted to anyone to make or distribute verbatim copies
of this document as received, in any medium, provided that the
copyright notice and this permission notice are preserved,
thus giving the recipient permission to redistribute in turn.
Permission is granted to distribute modified versions
of this document, or of portions of it,
under the above conditions, provided also that they
carry prominent notices stating who last changed them.
Local variables:
mode: outline
paragraph-separate: "[ ]*$"
eval: (add-hook 'write-file-hooks 'time-stamp)
time-stamp-start: "changes. "
time-stamp-format: "%:y-%02m-%02d"
time-stamp-end: "\n"
end:
|