Ejemplo n.º 1
0
 def _udf_creation_to_op(self, name, symbol, inputs, output):
     udf_info = udf.UDFCreator(self.udf_ll, inputs, output, symbol, name)
     self.temp_functions.append((name, inputs))
     self.con.create_udf(udf_info, database=self.test_data_db)
     op = udf_info.to_operation()
     udf.add_impala_operation(op, name, self.test_data_db)
     assert self.con.exists_udf(name, self.test_data_db)
     return op
Ejemplo n.º 2
0
    def test_sql_generation(self):
        op = udf.scalar_function(['string'], 'string', name='Tester')
        udf.add_impala_operation(op, 'identity', 'udf_testing')

        def _identity_test(value):
            return op(value).to_expr()
        result = _identity_test('hello world')
        assert result == "SELECT udf_testing.identity('hello world')"
Ejemplo n.º 3
0
 def _udf_creation_to_op(self, name, symbol, inputs, output):
     udf_info = udf.UDFCreator(self.udf_ll, inputs, output, symbol, name)
     self.temp_functions.append((name, inputs))
     self.con.create_udf(udf_info, database=self.test_data_db)
     op = udf_info.to_operation()
     udf.add_impala_operation(op, name, self.test_data_db)
     assert self.con.exists_udf(name, self.test_data_db)
     return op
Ejemplo n.º 4
0
    def test_sql_generation_from_infoclass(self):
        udf_info = udf.UDFCreator('test.so', ['string'], 'string', 'info_test')
        op = udf_info.to_operation()
        udf.add_impala_operation(op, 'info_test', 'udf_testing')
        assert op in _operation_registry

        def _infoclass_test(value):
            return op(value).to_expr()
        result = _infoclass_test('hello world')

        assert result == "SELECT udf_testing.info_test('hello world')"
Ejemplo n.º 5
0
def add_impala_operation(op, name, database):
    """
    Registers the given operation within the Ibis
    framework so it can be used

    Parameters
    ----------
    op: operator class
    name: used in issuing statements to SQL engine
    database: database the relevant operator is registered to
    """
    udf.add_impala_operation(op, name, database)
Ejemplo n.º 6
0
 def _udf_registration(self, inputs, output, name):
     op = udf.scalar_function(inputs, output, name=name)
     assert issubclass(op, ValueOp)
     udf.add_impala_operation(op, name, 'ibis_testing')
     return op