mainPostgreSQL - The comprehensive guide to building, programming, and administering PostgreSQL databases, Second Edition0672327562.hhc0672327562/main.htmlPostgreSQL: The comprehensive guide to building, programming, and administering PostgreSQL databases, Second EditionTable of ContentsCopyrightThe Real Value in Free SoftwareAbout the AuthorsAcknowledgmentsWe Want to Hear from You!Reader ServicesIntroductionPart I:  General PostgreSQL UsePart II:  Programming with PostgreSQLPart III:  PostgreSQL AdministrationIndexPostgreSQL FeaturesWhat Versions Does This Book Cover?What Topics Does This Book Cover?What's New in the Second Edition?Chapter 1.  Introduction to PostgreSQL and SQLChapter 2.  Working with Data in PostgreSQLChapter 3.  PostgreSQL SQL Syntax and UseChapter 4.  PerformanceChapter 5.  Introduction to PostgreSQL ProgrammingChapter 6.  Extending PostgreSQLChapter 7.  PL/pgSQLChapter 8.  The PostgreSQL C APIlibpqChapter 9.  A Simpler C APIlibpgeasyChapter 10.  The New PostgreSQL C++ APIlibpqxxChapter 11.  Embedding SQL Commands in C ProgramsecpgChapter 12.  Using PostgreSQL from an ODBC Client ApplicationChapter 13.  Using PostgreSQL from a Java Client ApplicationChapter 14.  Using PostgreSQL with PerlChapter 15.  Using PostgreSQL with PHPChapter 16.  Using PostgreSQL with Tcl and Tcl/TkChapter 17.  Using PostgreSQL with PythonChapter 18.  Npgsql: The .NET Data ProviderChapter 19.  Other Useful Programming ToolsChapter 20.  Introduction to PostgreSQL AdministrationChapter 21.  PostgreSQL AdministrationChapter 22.  Internationalization and LocalizationChapter 23.  SecurityChapter 24.  Replicating PostgreSQL Data with SlonyChapter 25.  Contributed ModulesSYMBOLABCDEFGHIJKLMNOPQRSTUVWXZA Sample DatabaseBasic Database TerminologyPrerequisitesConnecting to a DatabaseCreating TablesViewing Table DescriptionsAdding New Records to a TableInstalling the Sample DatabaseRetrieving Data from the Sample DatabaseThe CASE ExpressionAggregatesMulti-Table JoinsUPDATEDELETEA (Very) Short Introduction to Transaction ProcessingCreating New Tables Using CREATE TABLE...ASUsing VIEWSummaryNULL ValuesCharacter ValuesNumeric ValuesDate/Time ValuesBoolean (Logical) ValuesGeometric Data TypesObject IDs (OID)BLOBsNetwork Address Data TypesSequencesArraysColumn ConstraintsExpression Evaluation and Type ConversionCreating Your Own Data TypesSummaryPostgreSQL Naming RulesCreating, Destroying, and Viewing DatabasesCreating New TablesAdding Indexes to a TableGetting Information About Databases and TablesTransaction ProcessingSummaryHow PostgreSQL Organizes DataGathering Performance InformationUnderstanding How PostgreSQL Executes a QueryExecution Plans Generated by the PlannerThe ARC Buffer ManagerTable StatisticsPerformance TipsServer-Side ProgrammingClient-Side APIsGeneral Structure of Client ApplicationsChoosing an Application EnvironmentSummaryExtending the PostgreSQL Server with Custom FunctionsReturning Multiple Values from an Extension FunctionThe PostgreSQL SRF InterfaceReturning Complete Rows from an Extension FunctionExtending the PostgreSQL Server with Custom Data TypesInternal and External FormsDefining a Simple Data Type in PostgreSQLDefining the Data Type in CDefining the Input and Output Functions in CDefining the Input and Output Functions in PostgreSQLDefining the Data Type in PostgreSQLIndexing Custom Data TypesSummaryInstalling PL/pgSQLLanguage StructureFunction BodyCursorsTriggersPolymorphic FunctionsPL/pgSQL and SecuritySummaryPrerequisitesClient 1Connecting to the ServerClient 2Adding Error CheckingClient 3Simple ProcessingPQexec() and PQprint()Client 4An Interactive Query ProcessorSummaryPrerequisitesClient 1Connecting to the ServerClient 2Adding Error CheckingClient 3Processing QueriesClient 4An Interactive Query ProcessorSummaryPrerequisitesClient 1Connecting to the ServerClient 2Adding Error CheckingClient 3Processing QueriesClient 4Working with transactorsSummSummaryPrerequisitesClient 1Connecting to the ServerClient 2Adding Error CheckingClient 3Processing SQL CommandsClient 4An Interactive Query ProcessorSummaryODBC Architecture OverviewPrerequisitesClient 1Connecting to the ServerClient 2Adding Error CheckingClient 3Processing QueriesClient 4An Interactive Query ProcessorSummaryResourcesJDBC Architecture OverviewPrerequisitesClient 1Connecting to the ServerClient 2Adding Error CheckingClient 3Processing QueriesClient 4An Interactive Query ProcessorSummaryDBI Architecture OverviewPrerequisitesClient 1Connecting to the ServerClient 2Adding Error CheckingClient 3Processing QueriesClient 4An Interactive Query ProcessorSummaryPHP Architecture OverviewPrerequisitesClient 1Connecting to the ServerClient 2Adding Error CheckingClient 3Query ProcessingClient 4An Interactive Query ProcessorOther FeaturesSummaryPrerequisitesClient 1Connecting to the ServerClient 2Query ProcessingClient 3An Interactive Query ProcessorThe libpgtcl Large-Object APISummaryPython/PostgreSQL Interface ArchitecturePrerequisitesClient 1Connecting to the ServerClient 2Adding Error CheckingClient 3Query ProcessingClient 4An Interactive Command ProcessorSummaryPrerequisitesPreparing Visual StudioUnderstanding the ADO.NET Class HierarchyCreating an Npgsql-enabled VB ProjectClient 1Connecting to the ServerClient 2An Interactive Query ProcessorClient 3Updating the Database with a DataSetClient 4A More Robust Query ProcessorClient 5Using a Typed DataSetSummaryPL/JavaWriting Stored Procedures in JavapgcurlWeb-enabling Your PostgreSQL ServerpgbashWriting PostgreSQL-enabled Shell ScriptsSecurityUser AccountsBackup and RestoreServer Startup and ShutdownRunning PostgreSQL on a Windows HostTuningInstalling UpdatesLocalizationSummaryRoadmap (Where's All My Stuff?)Installing PostgreSQLManaging DatabasesThe PostgreSQL BGWRITER processManaging User AccountsConfiguring Your PostgreSQL Runtime EnvironmentArranging for PostgreSQL Startup and ShutdownBacking Up and Copying DatabasesPoint-in-time RecoverySummaryEndnotesLocale SupportMulti-Byte Character SetsSummaryEndnotesSecuring the PostgreSQL Data FilesSecuring Network AccessSecuring TablesSecuring FunctionsSummaryOverviewRequirementsCreating a Replication ClusterStarting the Replication DaemonsCreating a Replication SetSubscribing to a Replication SetChanging the Cluster Topology (Re-mastering and Failover)SummaryExchanging PostgreSQL Data with XMLUsing Full-text Search