• Tom Lane's avatar
    Make PL/Tcl require Tcl 8.4 or later. · e2609323
    Tom Lane authored
    As of commit 28782206, PL/Tcl will not
    compile against pre-8.0 Tcl, whereas it used to work (more or less anyway)
    with quite prehistoric versions.  As long as we're moving these goalposts,
    let's reinstall them at someplace that has some thought behind it.  This
    commit sets the minimum allowed Tcl version at 8.4, and rips out some bits
    of compatibility cruft that are in consequence no longer needed.  Reasons
    for requiring 8.4 include:
    
    * 8.4 was released in 2002; there seems little reason to believe that
    anyone would want to use older versions with Postgres 9.6+.
    
    * We have no buildfarm members testing anything older than 8.4, and
    thus no way to know if it's broken.
    
    * We need at least 8.1 to allow enforcement of database encoding
    security (8.1 standardized Tcl on using UTF8 internally, before that
    it was pretty unpredictable).
    
    * Some versions between 8.1 and 8.4 allowed the backend to become
    multithreaded, which is disastrous.  We need at least 8.4 to be able
    to disable the Tcl notifier subsystem to prevent that.
    
    A small side benefit is that we can make the code more readable by
    doing s/CONST84/const/g.
    e2609323
pltcl.c 76.9 KB