![JAR search and dependency download from the Maven repository](/logo.png)
xdev.db.postgresql.jdbc.PostgreSQLDbms Maven / Gradle / Ivy
package xdev.db.postgresql.jdbc;
/*-
* #%L
* SqlEngine Database Adapter PostgreSQL
* %%
* Copyright (C) 2003 - 2021 XDEV Software
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Lesser Public License for more details.
*
* You should have received a copy of the GNU General Lesser Public
* License along with this program. If not, see
* .
* #L%
*/
import com.xdev.jadoth.sqlengine.dbms.DbmsAdaptor;
import com.xdev.jadoth.sqlengine.dbms.SQLExceptionParser;
import com.xdev.jadoth.sqlengine.interfaces.ConnectionProvider;
import com.xdev.jadoth.sqlengine.internal.DatabaseGateway;
import com.xdev.jadoth.sqlengine.internal.tables.SqlTableIdentity;
public class PostgreSQLDbms
extends
DbmsAdaptor.Implementation
{
// /////////////////////////////////////////////////////////////////////////
// constants //
// ///////////////////
/** The Constant MAX_VARCHAR_LENGTH. 1 GB */
protected static final int MAX_VARCHAR_LENGTH = 1000000000;
protected static final char IDENTIFIER_DELIMITER = '"';
// /////////////////////////////////////////////////////////////////////////
// static methods //
// /////////////////
/**
* Single connection.
*
* @param host
* the host
* @param port
* the port
* @param user
* the user
* @param password
* the password
* @param database
* the database
* @return the connection provider
*/
public static ConnectionProvider singleConnection(final String host,
final int port, final String user, final String password, final String database, final String properties)
{
return new ConnectionProvider.Body<>(
new PostgreSQLConnectionInformation(
host,
port,
user,
password,
database,
properties,
new PostgreSQLDbms()
)
);
}
// /////////////////////////////////////////////////////////////////////////
// constructors //
// ///////////////
/**
* Instantiates a new postgreSQL dbms.
*/
public PostgreSQLDbms()
{
this(new PostgreSQLExceptionParser());
}
public PostgreSQLDbms(final SQLExceptionParser sqlExceptionParser)
{
super(sqlExceptionParser,false);
this.setRetrospectionAccessor(new PostgreSQLRetrospectionAccessor(this));
this.setDMLAssembler(new PostgreSQLDMLAssembler(this));
this.setDdlMapper(new PostgreSQLDDLMapper(this));
this.getConfiguration().setDelimitTableIdentifiers(true);
this.getConfiguration().setDelimitColumnIdentifiers(true);
}
/**
* @param host
* @param port
* @param user
* @param password
* @param catalog
* @return
* @see com.xdev.jadoth.sqlengine.dbms.DbmsAdaptor#createConnectionInformation(java.lang.String,
* int, java.lang.String, java.lang.String, java.lang.String)
*/
@Override
public PostgreSQLConnectionInformation createConnectionInformation(final String host,
final int port, final String user, final String password, final String catalog, final String properties)
{
return new PostgreSQLConnectionInformation(host,port,user,password,catalog,properties, this);
}
@Override
public boolean supportsOFFSET_ROWS()
{
return true;
}
/**
* @param table
* @return
* @see com.xdev.jadoth.sqlengine.dbms.DbmsAdaptor#updateSelectivity(com.xdev.jadoth.sqlengine.internal.tables.SqlTableIdentity)
*/
@Override
public Object updateSelectivity(final SqlTableIdentity table)
{
return null;
}
/**
* @param bytes
* @param sb
* @return
* @see com.xdev.jadoth.sqlengine.dbms.DbmsAdaptor#assembleTransformBytes(byte[],
* java.lang.StringBuilder)
*/
@Override
public StringBuilder assembleTransformBytes(final byte[] bytes, final StringBuilder sb)
{
return sb;
}
/**
* @param dbc
* @see com.xdev.jadoth.sqlengine.dbms.DbmsAdaptor#initialize(com.xdev.jadoth.sqlengine.internal.DatabaseGateway)
*/
@Override
public void initialize(final DatabaseGateway dbc)
{
// No initialization needed
}
/**
* @param fullQualifiedTableName
* @return
* @see com.xdev.jadoth.sqlengine.dbms.DbmsAdaptor#rebuildAllIndices(java.lang.String)
*/
@Override
public Object rebuildAllIndices(final String fullQualifiedTableName)
{
return null;
}
/**
* @return
* @see com.xdev.jadoth.sqlengine.dbms.DbmsAdaptor#getMaxVARCHARlength()
*/
@Override
public int getMaxVARCHARlength()
{
return MAX_VARCHAR_LENGTH;
}
@Override
public char getIdentifierDelimiter()
{
return IDENTIFIER_DELIMITER;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy