PostgreSQL源代码解析,开源数据库的深度剖析pg电子源代码

PostgreSQL源代码解析,开源数据库的深度剖析pg电子源代码,

本文目录导读:

  1. PostgreSQL源代码概述
  2. 核心模块解析
  3. 数据类型解析
  4. 存储结构解析

PostgreSQL(PostgreSQL)是一个功能强大、开源的数据库系统,以其高性能、可扩展性和开放性著称,作为全球最受欢迎的开源数据库之一,PostgreSQL的源代码不仅展示了其强大的功能,也体现了开源社区的协作精神,本文将从PostgreSQL源代码的角度,深入解析其核心模块、数据类型、存储结构以及扩展机制,帮助读者全面理解PostgreSQL的工作原理。


PostgreSQL源代码概述

PostgreSQL的源代码主要包含以下几个部分:

  1. 核心模块(Core Modules):负责数据库的基本功能,如连接、事务、锁机制等。
  2. 数据类型(Data Types):定义了PostgreSQL支持的各种数据类型,如数值类型、日期类型、几何类型等。
  3. 存储结构(Storage Structure):描述了数据在存储设备上的组织方式,包括索引、表结构、页结构等。
  4. 扩展机制(Extensions):允许用户自定义功能,如存储过程、触发器、用户自定义函数等。

通过分析这些模块的源代码,我们可以更好地理解PostgreSQL的工作原理。


核心模块解析

连接与会话(Connection and Session)

PostgreSQL的核心模块之一是connect.c,用于处理数据库连接和会话管理,在源代码中,我们可以看到以下关键功能:

  • 连接建立:通过getConnection()函数,用户可以连接到PostgreSQL服务器,该函数会检查连接参数(如用户名、密码、主机名等),并调用驱动程序(如psycopg)进行连接。
  • 会话管理:PostgreSQL支持会话(session),通过startTransaction()函数开始事务,commit()rollback()函数用于提交或回滚事务。

代码示例

#include "postgres.h"
...
intgetConnection(char *host, char *database, char *user, char *password, int flags) {
    return psycopgConnect(host, database, user, password, flags);
}

事务管理(Transaction Management)

事务管理是PostgreSQL的核心功能之一,源代码中,事务的开始和提交/回滚通过beginTransaction()commit()rollback()函数实现。

代码示例

void beginTransaction() {
    if (current_transaction == NULL) {
        current_transaction = start_transaction();
    }
}
void commit() {
    if (current_transaction) {
        if (current_transaction->status == transaction_status::dirty) {
            rollback();
        } else {
            commit();
        }
        current_transaction = NULL;
    }
}
void rollback() {
    if (current_transaction) {
        autoit();
        current_transaction = NULL;
    }
}

锁机制(Locking Mechanism)

PostgreSQL采用了“共享锁”和“排他锁”的锁机制,源代码中,锁的获取和释放通过acquire_lock()release_lock()函数实现。

代码示例

void acquire_lock(const char *name, lock_type type) {
    if (acquired[name] != type) {
        if (acquired[name] == lock_type::shared) {
            release_shared_lock();
        }
        acquired[name] = type;
        lock(name, type);
    }
}
void release_lock(const char *name) {
    if (acquired[name] == lock_type::shared) {
        release_shared_lock();
    }
    acquired[name] = NULL;
}

数据类型解析

PostgreSQL支持多种数据类型,如integertextdategeOMETRY等,这些数据类型的定义在源代码中以结构体和枚举的形式实现。

基本数据类型(Basic Data Types)

PostgreSQL的基本数据类型包括:

  • integer:整数类型。
  • text:文本类型。
  • boolean:布尔值类型。
  • date:日期类型。

这些类型通过pg_type结构体定义,其中包含类型名称、长度、精度等信息。

代码示例

typedef struct {
    const char *name;
    int precision;
    int scale;
    char *display;
    char *display2;
    char *display3;
    char *display4;
    char *display5;
    char *display6;
    char *display7;
    char *display8;
    char *display9;
    char *display10;
    char *display11;
    char *display12;
    char *display13;
    char *display14;
    char *display15;
    char *display16;
    char *display17;
    char *display18;
    char *display19;
    char *display20;
} pg_type;

几何数据类型(Geometric Types)

PostgreSQL还支持几何数据类型,如pointlineboxcircle等,这些类型通过pg_geom_type结构体定义。

代码示例

typedef struct {
    const char *name;
    int precision;
    int scale;
    char *display;
    char *display2;
    char *display3;
    char *display4;
    char *display5;
    char *display6;
    char *display7;
    char *display8;
    char *display9;
    char *display10;
    char *display11;
    char *display12;
    char *display13;
    char *display14;
    char *display15;
    char *display16;
    char *display17;
    char *display18;
    char *display19;
    char *display20;
} pg_geom_type;

存储结构解析

PostgreSQL的存储结构主要由表、索引、页组成,这些结构在源代码中通过pg_table, pg_index, pg_page等结构体定义。

表结构(Table Structure)

表结构由pg_table结构体定义,包含表的名称、数据类型、索引等信息。

代码示例

typedef struct {
    const char *name;
    const char *owner;
    int flags;
    int columns;
    int rows;
    int data_length;
    int pg_size;
    int pg_size_with_data;
    int pg_num_chunks;
    int pg_num Rocks;
    int pg Rocks_size;
    int pg Rocks_num Rocks;
    int pg Rocks Rocks_size;
    int pg Rocks Rocks_num Rocks;
    int pg Rocks Rocks Rocks_size;
    int pg Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks;
    int pg Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks Rocks
PostgreSQL源代码解析,开源数据库的深度剖析pg电子源代码,

发表评论