All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.persistence.platform.database.MariaDBPlatform Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2022 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-2.0,
 * or the Eclipse Distribution License v. 1.0 which is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
 */

package org.eclipse.persistence.platform.database;

import org.eclipse.persistence.queries.ValueReadQuery;

import java.io.IOException;
import java.io.Writer;
import java.sql.Connection;
import java.sql.SQLException;

/**
 * 

Purpose: Provides MariaDB specific behavior. */ public class MariaDBPlatform extends MySQLPlatform { @Override public void initializeConnectionData(Connection connection) throws SQLException { this.driverSupportsNationalCharacterVarying = true; } @Override public boolean isMariaDB() { return true; } @Override public boolean isMySQL() { return false; } @Override public boolean isFractionalTimeSupported() { return true; } /** * INTERNAL: Indicates whether the platform supports sequence objects. */ @Override public boolean supportsSequenceObjects() { return true; } /** * INTERNAL: Returns query used to read value generated by sequence object * (like Oracle sequence). This method is called when sequence object * NativeSequence is connected, the returned query used until the sequence * is disconnected. If the platform supportsSequenceObjects then (at least) * one of buildSelectQueryForSequenceObject methods should return non-null * query. */ @Override public Writer buildSequenceObjectCreationWriter(Writer writer, String fullSeqName, int increment, int start) throws IOException { writer.write("CREATE SEQUENCE "); writer.write(fullSeqName); if(start != 1) { writer.write(" START WITH " + start); } if (increment != 1) { writer.write(" INCREMENT BY " + increment); } return writer; } @Override public ValueReadQuery buildSelectQueryForSequenceObject(String qualifiedSeqName, Integer size) { return new ValueReadQuery("select nextval(" + qualifiedSeqName + ")"); } /** * INTERNAL: Override this method if the platform supports sequence objects * and it's possible to alter sequence object's increment in the database. */ @Override public boolean isAlterSequenceObjectSupported() { return true; } /** * Return the drop schema definition. Subclasses should override as needed. */ @Override public String getDropDatabaseSchemaString(String schema) { return "DROP SCHEMA IF EXISTS " + schema; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy