src/lib/dhcpsrv/tests/pgsql_exchange_unittest.cc
- Added PgSqlBasicsTest test fixture class and tests which exercise all of
the PostgreSQL data types we currently use with round-trip database writes
and reads
src/lib/dhcpsrv/pgsql_connection.cc
src/lib/dhcpsrv/pgsql_connection.h
- Moved PgSqlResult function impls from .h
- Added exception safe implementation of getColumnLabel() to PgSqlResult
src/lib/dhcpsrv/pgsql_exchange.cc
src/lib/dhcpsrv/pgsql_exchange.h
- PsqlBindArray::add() variants which accept raw pointers now throw
if the pointer is NULL
- PgSqlExchange::getColumnLabel() is now a wrapper around PgSqlResult method
src/lib/dhcpsrv/pgsql_host_data_source.h
src/lib/dhcpsrv/pgsql_host_data_source.cc
- Commentary clean up
src/lib/dhcpsrv/pgsql_lease_mgr.cc
- Commentary clean up
src/lib/dhcpsrv/pgsql_exchange.h
src/lib/dhcpsrv/pgsql_exchange.cc
src/lib/dhcpsrv/pgsql_lease_mgr.cc
Moved getIPv6Value() from PgSqlLease6Exchange to
PgSqlExchange and made it static
PgSqlExchange::dumpRow() gets number of columns
from result set, not parameter
src/lib/dhcpsrv/pgsql_host_data_source.cc
PgSqlIPv6ReservationExchange
PgSqlHostIPv6Exchange - now functional
src/lib/dhcpsrv/tests/pgsql_host_data_source_unittest.cc
TEST_F(PgSqlHostDataSourceTest, get6AddrWithDuid)
TEST_F(PgSqlHostDataSourceTest, addDuplicate6WithHWAddr)
TEST_F(PgSqlHostDataSourceTest, optionsReservations6)
TEST_F(PgSqlHostDataSourceTest, optionsReservations46)
TEST_F(PgSqlHostDataSourceTest, formattedOptionsReservations6)
TEST_F(PgSqlHostDataSourceTest, formattedOptionsReservations46)
- All included and passing.
src/lib/dhcpsrv/pgsql_connection.h
Added OID_TEXT
src/lib/dhcpsrv/pgsql_exchange.cc
PsqlBindArray::addNull()
class PgSqlExchange
- getColumnLabel() - now gets column name from result set
- getColumnValue variants are now static methods
- rename column_labels_ to columns_
- isColumnNull() new method tests if column in row is null
- dumpRow() - debug method dumps row as text
src/lib/dhcpsrv/pgsql_host_data_source.cc
PgSqlHostWithOptionsExchange
PgSqlOptionExchange now functional
src/lib/dhcpsrv/tests/pgsql_host_data_source_unittest.cc
TEST_F(PgSqlHostDataSourceTest, addDuplicate4)
TEST_F(PgSqlHostDataSourceTest, formattedOptionsReservations4)
- Enabled and passing.
src/lib/dhcpsrv
pgsql_host_data_source.c
pgsql_host_data_source.h - new files, preliminary implementation
src/lib/dhcpsrv/Makefile.am
Added new files pgsql_host_data_source.cc, pgsql_host_data_source.h
src/lib/dhcpsrv/dhcpsrv_messages.mes
Added log messages DHCPSRV_PGSQL_HOST_DB_GET_VERSION, DHCPSRV_PGSQL_START_TRANSACTION
src/lib/dhcpsrv/pgsql_connection.cc
src/lib/dhcpsrv/pgsql_connection.h
Added PgSqlTransaction
Added PgSqlConnection::startTransaction()
src/lib/dhcpsrv/pgsql_exchange.cc
src/lib/dhcpsrv/pgsql_exchange.h
PsqlBindArray
- Added storage of conversion strings used for bound values
- Added add() variants for uint8_t, IOAddress, uint8_t buffer
- Added templated variant for miscellaneous types
PgSqlExchange
- Removed getColumnValue variants for various integers, replaced
with templated version for miscellaneous types
src/lib/dhcpsrv/pgsql_lease_mgr.cc
Added todo comment to remember to account for hwaddr columns added to lease6
src/lib/dhcpsrv/tests/pgsql_exchange_unittest.cc
TEST(PsqlBindArray, basicOperation) - new test to exercise bind functions
bin/admin/tests/pgsql_tests.sh.in
Typos
share/database/scripts/pgsql/.gitignore
Added upgrade_2.0_to_3.0.sh
share/database/scripts/pgsql/dhcpdb_create.pgsql
Added entry for client_id to hosts_identifier
Added commentrary for dhcp_option_scope
Added periods to the ends of sentences.
Added 4.1 to 4.2 updates from MySQL and created upgrade
script for 2.0 to 3.0
src/share/database/scripts/pgsql/dhcpdb_create.pgsql
- Enclosed the entire script in a single transaction
- Removed DROP TABLE statements
- Added host_identifier_type table and data
- Added dhcp_option_scope table and data
- Updated unqiue constraints for hosts table
- Added scope_id and foreign key constraint to dhcp4_options table
- Added scope_id and foreign key constraint to dhcp6_options table
- Added unique contraint to ipv6_reservations table
- Changed 'HWADDR_SOURCE_DOCSIS' to 'HWADDR_SOURCE_DOCSIS_CMTS'
- Inserted row for 'HWADDR_SOURCE_UKNOWN'
src/share/database/scripts/pgsql/dhcpdb_drop.pgsql
Added drops for host_identifier_type and dhcp_option_scope
src/share/database/scripts/pgsql/upgrade_2.0_to_3.0.sh.in
New file for upgrading Postgresql from 2.0 to 3.0
configure.ac
Added src/share/database/scripts/pgsql/upgrade_2.0_to_3.0.sh
src/bin/admin/tests/pgsql_tests.sh.in
- pgsql_upgrade_1_0_to_2_0 - new function which contains all the checks used
to verify 1.0 to 2.0 upgrade (extracted from pgsql_upgrade_test)
- pgsql_upgrade_2_0_to_3_0 - new function which contains all the checks used
to verify 2.0 to 3.0 upgrade
- pgsql_upgrade_test() - modified use new upgrade check fucntions
src/share/database/scripts/pgsql/Makefile.am
Added entry for upgrade_2.0_to_3.0.sh
Postresql schema now supports host reservations with options,
and lease6 table now includes hardware address and source
src/share/database/scripts/pgsql/dhcpdb_create.pgsql
Added Schema 3.0 upgrade section:
- new tables: hosts, dhcp4_options, dhcp6_options,
ipv6_reservations, lease_hwaddr_source
- lease4Dumpdata() - results now sorted by lease address
- lease6 table - added columns hwaddr, hwtype, hwaddr_source
- lease6DumpHeader() - added labels for new columns
- lease6DumpData() - added new columns, results now sorted by
lease address
- schema_vesion - bumped version to 3
src/share/database/scripts/pgsql/dhcpdb_drop.pgsql
Added drops of new tables
src/lib/dhcpsrv/pgsql_lease_mgr.cc
- PgSqlLeaseMgr::PgSqlLeaseMgr() - added logic to detect schema
mismatch between the code and configured database
src/lib/dhcpsrv/pgsql_lease_mgr.h
- Bumped PG_CURRENT_VERSION from 2 to 3
src/bin/admin/tests/data/pgsql.lease6_dump_test.reference.csv
- Reordered entries to account for dump function sort order
- Added values for new columns on lease6 table
src/bin/admin/tests/pgsql_tests.sh.in
- pgsql_lease_version_test() - changed expected version to 3.0
- pgsql_lease6_dump_test() - added new column values to inserted rows