Package net.sf.hajdbc

Examples of net.sf.hajdbc.SequenceSupport


   
    for (String sql: statements)
    {
      if (cluster.isSequenceDetectionEnabled())
      {
        SequenceSupport support = cluster.getDialect().getSequenceSupport();
       
        if (support != null)
        {
          String sequence = support.parseSequence(sql);
         
          if (sequence != null)
          {
            identifierSet.add(sequence);
          }
        }
      }
     
      if (cluster.isIdentityColumnDetectionEnabled())
      {
        IdentityColumnSupport support = cluster.getDialect().getIdentityColumnSupport();
       
        if (support != null)
        {
          String table = support.parseInsertTable(sql);
         
          if (table != null)
          {
            TableProperties tableProperties = this.getDatabaseProperties().findTable(table);
           
View Full Code Here


   * @see net.sf.hajdbc.dialect.StandardDialectTest#parseSequence()
   */
  @Override
  public void parseSequence() throws SQLException
  {
    SequenceSupport support = this.dialect.getSequenceSupport();
    assertEquals("sequence", support.parseSequence("SELECT GEN_ID(sequence, 1) FROM RDB$DATABASE"));
    assertEquals("sequence", support.parseSequence("SELECT GEN_ID(sequence, 1), * FROM table"));
    assertEquals("sequence", support.parseSequence("INSERT INTO table VALUES (GEN_ID(sequence, 1), 0)"));
    assertEquals("sequence", support.parseSequence("UPDATE table SET id = GEN_ID(sequence, 1)"));
    assertNull(support.parseSequence("SELECT NEXT VALUE FOR test"));
    assertNull(support.parseSequence("SELECT NEXT VALUE FOR test, * FROM table"));
    assertNull(support.parseSequence("INSERT INTO table VALUES (NEXT VALUE FOR test)"));
    assertNull(support.parseSequence("UPDATE table SET id = NEXT VALUE FOR test"));
    assertNull(support.parseSequence("SELECT * FROM table"));
  }
View Full Code Here

   * @see net.sf.hajdbc.dialect.StandardDialectTest#parseSequence()
   */
  @Override
  public void parseSequence() throws SQLException
  {
    SequenceSupport support = this.dialect.getSequenceSupport();
    assertEquals("sequence", support.parseSequence("SELECT NEXTVAL('sequence'), * FROM table"));
    assertEquals("sequence", support.parseSequence("SELECT NEXTVAL ( 'sequence' ), * FROM table"));
    assertEquals("sequence", support.parseSequence("SELECT CURRVAL('sequence'), * FROM table"));
    assertEquals("sequence", support.parseSequence("SELECT CURRVAL ( 'sequence' ), * FROM table"));
    assertNull(support.parseSequence("SELECT NEXT VALUE FOR sequence"));
    assertNull(support.parseSequence("SELECT * FROM table"));
  }
View Full Code Here

   * @see net.sf.hajdbc.dialect.StandardDialectTest#parseSequence()
   */
  @Override
  public void parseSequence() throws SQLException
  {
    SequenceSupport support = this.dialect.getSequenceSupport();
    assertEquals("sequence", support.parseSequence("SELECT NEXT VALUE FOR sequence"));
    assertEquals("sequence", support.parseSequence("SELECT CURRENT VALUE FOR sequence"));
    assertEquals("sequence", support.parseSequence("SELECT NEXT VALUE FOR sequence, * FROM table"));
    assertEquals("sequence", support.parseSequence("SELECT CURRENT VALUE FOR sequence, * FROM table"));
    assertEquals("sequence", support.parseSequence("INSERT INTO table VALUES (NEXT VALUE FOR sequence, 0)"));
    assertEquals("sequence", support.parseSequence("INSERT INTO table VALUES (CURRENT VALUE FOR sequence, 0)"));
    assertEquals("sequence", support.parseSequence("UPDATE table SET id = NEXT VALUE FOR sequence"));
    assertEquals("sequence", support.parseSequence("UPDATE table SET id = CURRENT VALUE FOR sequence"));
    assertEquals("sequence", support.parseSequence("SELECT sequence.nextval"));
    assertEquals("sequence", support.parseSequence("SELECT sequence.currval"));
    assertEquals("sequence", support.parseSequence("SELECT sequence.nextval, * FROM table"));
    assertEquals("sequence", support.parseSequence("SELECT sequence.currval, * FROM table"));
    assertEquals("sequence", support.parseSequence("INSERT INTO table VALUES (sequence.nextval, 0)"));
    assertEquals("sequence", support.parseSequence("INSERT INTO table VALUES (sequence.currval, 0)"));
    assertEquals("sequence", support.parseSequence("UPDATE table SET id = sequence.nextval"));
    assertEquals("sequence", support.parseSequence("UPDATE table SET id = sequence.currval"));
    assertNull(support.parseSequence("SELECT * FROM table"));
  }
View Full Code Here

   * @see net.sf.hajdbc.dialect.StandardDialectTest#parseSequence()
   */
  @Override
  public void parseSequence() throws SQLException
  {
    SequenceSupport support = this.dialect.getSequenceSupport();
   
    assertEquals("sequence", support.parseSequence("SELECT sequence.nextval"));
    assertEquals("sequence", support.parseSequence("SELECT sequence.currval"));
    assertEquals("sequence", support.parseSequence("SELECT sequence.nextval, * FROM table"));
    assertEquals("sequence", support.parseSequence("SELECT sequence.currval, * FROM table"));
    assertEquals("sequence", support.parseSequence("INSERT INTO table VALUES (sequence.nextval, 0)"));
    assertEquals("sequence", support.parseSequence("INSERT INTO table VALUES (sequence.currval, 0)"));
    assertEquals("sequence", support.parseSequence("UPDATE table SET id = sequence.nextval"));
    assertEquals("sequence", support.parseSequence("UPDATE table SET id = sequence.currval"));
    assertNull(support.parseSequence("SELECT NEXT VALUE FOR sequence"));
  }
View Full Code Here

   * @see net.sf.hajdbc.dialect.StandardDialectTest#parseSequence()
   */
  @Override
  public void parseSequence() throws SQLException
  {
    SequenceSupport support = this.dialect.getSequenceSupport();
    assertEquals("sequence", support.parseSequence("SELECT sequence.nextval"));
    assertEquals("sequence", support.parseSequence("SELECT sequence.currval"));
    assertEquals("sequence", support.parseSequence("SELECT sequence.nextval, * FROM table"));
    assertEquals("sequence", support.parseSequence("SELECT sequence.currval, * FROM table"));
    assertEquals("sequence", support.parseSequence("SELECT sequence.nextval"));
    assertEquals("sequence", support.parseSequence("INSERT INTO table VALUES (sequence.nextval, 0)"));
    assertEquals("sequence", support.parseSequence("INSERT INTO table VALUES (sequence.currval, 0)"));
    assertEquals("sequence", support.parseSequence("UPDATE table SET id = sequence.nextval"));
    assertEquals("sequence", support.parseSequence("UPDATE table SET id = sequence.nextval"));
    assertNull(support.parseSequence("SELECT NEXT VALUE FOR sequence"));
  }
View Full Code Here

  }
 
  @Test
  public void getAlterSequenceSQL() throws SQLException
  {
    SequenceSupport support = this.dialect.getSequenceSupport();
   
    if (support != null)
    {
      SequenceProperties sequence = mock(SequenceProperties.class);
      QualifiedName name = mock(QualifiedName.class);
     
      when(sequence.getName()).thenReturn(name);
      when(name.getDDLName()).thenReturn("sequence");
      when(sequence.getIncrement()).thenReturn(1);
     
      String result = support.getAlterSequenceSQL(sequence, 1000L);
     
      assertEquals("ALTER SEQUENCE sequence RESTART WITH 1000", result);
    }
  }
View Full Code Here

  }

  @Test
  public void getNextSequenceValueSQL() throws SQLException
  {
    SequenceSupport support = this.dialect.getSequenceSupport();
   
    if (support != null)
    {
      QualifiedName name = mock(QualifiedName.class);
      SequenceProperties sequence = mock(SequenceProperties.class);
     
      when(sequence.getName()).thenReturn(name);
      when(name.getDMLName()).thenReturn("sequence");
     
      String result = support.getNextSequenceValueSQL(sequence);
     
      assertEquals("SELECT NEXT VALUE FOR sequence", result);
    }
  }
View Full Code Here

  }

  @Test
  public void getSequences() throws SQLException
  {
    SequenceSupport support = this.dialect.getSequenceSupport();
   
    if (support != null)
    {
      SequencePropertiesFactory factory = mock(SequencePropertiesFactory.class);
      SequenceProperties sequence1 = mock(SequenceProperties.class);
      SequenceProperties sequence2 = mock(SequenceProperties.class);
      DatabaseMetaData metaData = mock(DatabaseMetaData.class);
      ResultSet resultSet = mock(ResultSet.class);
     
      when(metaData.supportsSchemasInTableDefinitions()).thenReturn(true);
      when(metaData.supportsSchemasInDataManipulation()).thenReturn(true);
      when(metaData.getTables(eq(""), eq((String) null), eq("%"), aryEq(new String[] { "SEQUENCE" }))).thenReturn(resultSet);
      when(resultSet.next()).thenReturn(true).thenReturn(true).thenReturn(false);
      when(resultSet.getString("TABLE_SCHEM")).thenReturn("schema1").thenReturn("schema2");
      when(resultSet.getString("TABLE_NAME")).thenReturn("sequence1").thenReturn("sequence2");
      when(factory.createSequenceProperties("schema1", "sequence1", 1)).thenReturn(sequence1);
      when(factory.createSequenceProperties("schema2", "sequence2", 1)).thenReturn(sequence2);
     
      Collection<SequenceProperties> results = support.getSequences(metaData, factory);
     
      verify(resultSet).close();
     
      assertEquals(2, results.size());
     
View Full Code Here

  }

  @Test
  public void parseSequence() throws SQLException
  {
    SequenceSupport support = this.dialect.getSequenceSupport();
   
    if (support != null)
    {
      assertEquals("test", support.parseSequence("SELECT NEXT VALUE FOR test"));
      assertEquals("test", support.parseSequence("SELECT NEXT VALUE FOR test, * FROM table"));
      assertEquals("test", support.parseSequence("INSERT INTO table VALUES (NEXT VALUE FOR test)"));
      assertEquals("test", support.parseSequence("UPDATE table SET id = NEXT VALUE FOR test"));
      assertNull(support.parseSequence("SELECT * FROM table"));
    }
  }
View Full Code Here

TOP

Related Classes of net.sf.hajdbc.SequenceSupport

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.