mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-13 20:19:44 +02:00
fc49e24fa6
For performance reasons a larger segment size than the default 16MB can be useful. A larger segment size has two main benefits: Firstly, in setups using archiving, it makes it easier to write scripts that can keep up with higher amounts of WAL, secondly, the WAL has to be written and synced to disk less frequently. But at the same time large segment size are disadvantageous for smaller databases. So far the segment size had to be configured at compile time, often making it unrealistic to choose one fitting to a particularly load. Therefore change it to a initdb time setting. This includes a breaking changes to the xlogreader.h API, which now requires the current segment size to be configured. For that and similar reasons a number of binaries had to be taught how to recognize the current segment size. Author: Beena Emerson, editorialized by Andres Freund Reviewed-By: Andres Freund, David Steele, Kuntal Ghosh, Michael Paquier, Peter Eisentraut, Robert Hass, Tushar Ahuja Discussion: https://postgr.es/m/CAOG9ApEAcQ--1ieKbhFzXSQPw_YLmepaa4hNdnY5+ZULpt81Mw@mail.gmail.com |
||
---|---|---|
.. | ||
.gitignore | ||
build.bat | ||
build.pl | ||
builddoc.bat | ||
builddoc.pl | ||
clean.bat | ||
config_default.pl | ||
ecpg_regression.proj | ||
gendef.pl | ||
install.bat | ||
install.pl | ||
Install.pm | ||
mkvcbuild.pl | ||
Mkvcbuild.pm | ||
MSBuildProject.pm | ||
pgbison.bat | ||
pgbison.pl | ||
pgflex.bat | ||
pgflex.pl | ||
Project.pm | ||
README | ||
Solution.pm | ||
VCBuildProject.pm | ||
vcregress.bat | ||
vcregress.pl | ||
VSObjectFactory.pm |
src/tools/msvc/README MSVC build ========== This directory contains the tools required to build PostgreSQL using Microsoft Visual Studio 2005 - 2011. This builds the whole backend, not just the libpq frontend library. For more information, see the documentation chapter "Installation on Windows" and the description below. Notes about Visual Studio Express --------------------------------- To build PostgreSQL using Visual Studio Express, the Microsoft Windows SDK has to be installed. Since this is not included in the product originally, extra steps are needed to make it work. First, download and install a supported version of the Microsoft Windows SDK from www.microsoft.com (v6.0 or greater). Locate the files vcprojectengine.dll.express.config and vcprojectengine.dll.config in the vc\vcpackages directory of the Visual C++ Express installation. In these files, add the paths to the Platform SDK to the Include, Library and Path tags. Be sure to add them to the beginning of the list. This should work for both GUI and commandline builds, but a restart may be necessary. If you are using a recent version of the Microsoft Windows SDK that includes the compilers and build tools you probably don't even need Visual Studio Express to build PostgreSQL. Structure of the build tools ---------------------------- The tools for building PostgreSQL using Microsoft Visual Studio currently consist of the following files: - Configuration files - config_default.pl default configuration arguments A typical build environment has two more files, buildenv.pl and config.pl that contain the user's build environment settings and configuration arguments. - User tools - build.pl tool to build the binaries builddoc.pl tool to build the docs clean.bat batch file for cleaning up generated files install.pl tool to install the generated files mkvcbuild.pl tool to generate the Visual Studio build files vcregress.pl tool to run the regression tests - Internal tools - gendef.pl internal tool to generate .DEF files pgbison.pl internal tool to process .y files using bison pgflex.pl internal tool to process .l files using flex Many of those .pl files also have a corresponding .bat-wrapper that doesn't contain any additional logic. - Internal modules - Install.pm module containing the install logic Mkvcbuild.pm module containing the code to generate the Visual Studio build (project/solution) files MSBuildProject.pm module containing the code to generate MSBuild based project files (Visual Studio 2010 or greater) Project.pm module containing the common code to generate the Visual Studio project files. Also provides the common interface of all project file generators Solution.pm module containing the code to generate the Visual Studio solution files. VCBuildProject.pm module containing the code to generate VCBuild based project files (Visual Studio 2005/2008) VSObjectFactory.pm factory module providing the code to create the appropriate project/solution files for the current environment Description of the internals of the Visual Studio build process --------------------------------------------------------------- By typing 'build' the user starts the build.bat wrapper which simply passes it's arguments to build.pl. In build.pl the user's buildenv.pl is used to set up the build environment (i. e. path to bison and flex). In addition his config.pl file is merged into config_default.pl to create the configuration arguments. These configuration arguments are passed over to Mkvcbuild::mkvcbuild (Mkvcbuild.pm) which creates the Visual Studio project and solution files. It does this by using VSObjectFactory::CreateSolution to create an object implementing the Solution interface (this could be either a VS2005Solution, a VS2008Solution, a VS2010Solution or a VS2012Solution, all in Solution.pm, depending on the user's build environment) and adding objects implementing the corresponding Project interface (VC2005Project or VC2008Project from VCBuildProject.pm or VC2010Project or VC2012Project from MSBuildProject.pm) to it. When Solution::Save is called, the implementations of Solution and Project save their content in the appropriate format. The final step of starting the appropriate build program (msbuild or vcbuild) is performed in build.pl again.