Search in sources :

Example 6 with Index

use of org.folio.dbschema.Index in project raml-module-builder by folio-org.

the class IndexTest method indexStringTypeFalse.

@Test
void indexStringTypeFalse() {
    Index idx = new Index();
    idx.setFieldName("testField");
    idx.setStringType(false);
    idx.setupIndex();
    assertEquals("(jsonb->'testField')", idx.getFinalTruncatedSqlExpression("test_table"));
}
Also used : Index(org.folio.dbschema.Index) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 7 with Index

use of org.folio.dbschema.Index in project raml-module-builder by folio-org.

the class IndexTest method sqlExpressionQuery.

@Test
void sqlExpressionQuery() {
    Index index = index("testIdx", "testIdx");
    assertNull(index.getSqlExpressionQuery());
    index.setSqlExpressionQuery("foo($)");
    assertEquals("foo($)", index.getSqlExpressionQuery());
}
Also used : Index(org.folio.dbschema.Index) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 8 with Index

use of org.folio.dbschema.Index in project raml-module-builder by folio-org.

the class IndexTest method arrayMultiFieldNames.

@Test
void arrayMultiFieldNames() {
    Index idx = index("testIdx", "testIdx");
    idx.setMultiFieldNames("field1[*].test,field2[*].name,field3.blah.blah2[*].foo");
    assertEquals("concat_space_sql(concat_array_object_values(test_table.jsonb->'field1','test') ," + " concat_array_object_values(test_table.jsonb->'field2','name') , concat_array_object_values(test_table.jsonb->'field3'->'blah'->'blah2','foo'))", idx.getFinalSqlExpression("test_table"));
}
Also used : Index(org.folio.dbschema.Index) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 9 with Index

use of org.folio.dbschema.Index in project raml-module-builder by folio-org.

the class IndexTest method fieldNameWithMultipleNames.

@Test
void fieldNameWithMultipleNames() {
    Index idx = index("name1, name2", "name1, name2");
    assertThrows(UnsupportedOperationException.class, () -> idx.getFinalTruncatedSqlExpression("test_table"));
}
Also used : Index(org.folio.dbschema.Index) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 10 with Index

use of org.folio.dbschema.Index in project raml-module-builder by folio-org.

the class IndexTest method sqlsetMultiFieldNamesWrapSetRemoveAccents.

@Test
void sqlsetMultiFieldNamesWrapSetRemoveAccents() {
    Index idx = index("testIdx", "testIdx");
    idx.setCaseSensitive(false);
    idx.setRemoveAccents(true);
    idx.setMultiFieldNames("test1,test2.test3");
    assertEquals("lower(f_unaccent(concat_space_sql(test_table.jsonb->>'test1' , test_table.jsonb->'test2'->>'test3')))", idx.getFinalSqlExpression("test_table"));
}
Also used : Index(org.folio.dbschema.Index) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Aggregations

Index (org.folio.dbschema.Index)22 Test (org.junit.jupiter.api.Test)16 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)16 DbIndex (org.folio.cql2pgjson.model.DbIndex)5 Modifier (org.z3950.zing.cql.Modifier)3 CQLFeatureUnsupportedException (org.folio.cql2pgjson.exception.CQLFeatureUnsupportedException)2 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1 Collections (java.util.Collections)1 HashMap (java.util.HashMap)1 LinkedList (java.util.LinkedList)1 List (java.util.List)1 Map (java.util.Map)1 Level (java.util.logging.Level)1 Logger (java.util.logging.Logger)1 Pattern (java.util.regex.Pattern)1 ObjectUtils (org.apache.commons.lang3.ObjectUtils)1 StringUtils (org.apache.commons.lang3.StringUtils)1 FieldException (org.folio.cql2pgjson.exception.FieldException)1 QueryValidationException (org.folio.cql2pgjson.exception.QueryValidationException)1