iceberg 0.11.2-aarch64-linux → 0.12.0-aarch64-linux

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,64 @@
1
+ module Iceberg
2
+ class Transform
3
+ def ==(other)
4
+ other.is_a?(self.class)
5
+ end
6
+
7
+ def inspect
8
+ "#<#{self.class.name}>"
9
+ end
10
+ end
11
+
12
+ class IdentityTransform < Transform
13
+ end
14
+
15
+ class BucketTransform < Transform
16
+ attr_reader :num_buckets
17
+
18
+ def initialize(num_buckets)
19
+ @num_buckets = num_buckets
20
+ end
21
+
22
+ def ==(other)
23
+ other.is_a?(self.class) && other.num_buckets == @num_buckets
24
+ end
25
+
26
+ def inspect
27
+ "#<#{self.class.name} num_buckets=#{@num_buckets.inspect}>"
28
+ end
29
+ end
30
+
31
+ class TruncateTransform < Transform
32
+ attr_reader :width
33
+
34
+ def initialize(width)
35
+ @width = width
36
+ end
37
+
38
+ def ==(other)
39
+ other.is_a?(self.class) && other.width == @width
40
+ end
41
+
42
+ def inspect
43
+ "#<#{self.class.name} width=#{@width.inspect}>"
44
+ end
45
+ end
46
+
47
+ class YearTransform < Transform
48
+ end
49
+
50
+ class MonthTransform < Transform
51
+ end
52
+
53
+ class DayTransform < Transform
54
+ end
55
+
56
+ class HourTransform < Transform
57
+ end
58
+
59
+ class VoidTransform < Transform
60
+ end
61
+
62
+ class UnknownTransform < Transform
63
+ end
64
+ end
@@ -0,0 +1,137 @@
1
+ module Iceberg
2
+ class Type
3
+ def inspect
4
+ "#<#{self.class.name}>"
5
+ end
6
+ end
7
+
8
+ class PrimitiveType < Type
9
+ def ==(other)
10
+ other.is_a?(self.class)
11
+ end
12
+ end
13
+
14
+ class BooleanType < PrimitiveType
15
+ end
16
+
17
+ class IntType < PrimitiveType
18
+ end
19
+
20
+ class LongType < PrimitiveType
21
+ end
22
+
23
+ class FloatType < PrimitiveType
24
+ end
25
+
26
+ class DoubleType < PrimitiveType
27
+ end
28
+
29
+ class DecimalType < PrimitiveType
30
+ attr_reader :precision, :scale
31
+
32
+ def initialize(precision, scale)
33
+ @precision = precision
34
+ @scale = scale
35
+ end
36
+
37
+ def ==(other)
38
+ other.is_a?(self.class) && other.precision == @precision && other.scale == @scale
39
+ end
40
+
41
+ def inspect
42
+ "#<#{self.class.name} precision=#{@precision.inspect}, scale=#{@scale.inspect}>"
43
+ end
44
+ end
45
+
46
+ class DateType < PrimitiveType
47
+ end
48
+
49
+ class TimeType < PrimitiveType
50
+ end
51
+
52
+ class TimestampType < PrimitiveType
53
+ end
54
+
55
+ class TimestamptzType < PrimitiveType
56
+ end
57
+
58
+ class TimestampNanoType < PrimitiveType
59
+ end
60
+
61
+ class TimestamptzNanoType < PrimitiveType
62
+ end
63
+
64
+ class StringType < PrimitiveType
65
+ end
66
+
67
+ class UUIDType < PrimitiveType
68
+ end
69
+
70
+ class FixedType < PrimitiveType
71
+ attr_reader :length
72
+
73
+ def initialize(length)
74
+ @length = length
75
+ end
76
+
77
+ def ==(other)
78
+ other.is_a?(self.class) && other.length == @length
79
+ end
80
+
81
+ def inspect
82
+ "#<#{self.class.name} length=#{@length.inspect}>"
83
+ end
84
+ end
85
+
86
+ class BinaryType < PrimitiveType
87
+ end
88
+
89
+ class StructType < Type
90
+ attr_reader :fields
91
+
92
+ def initialize(*fields)
93
+ @fields = fields
94
+ end
95
+
96
+ def ==(other)
97
+ other.is_a?(self.class) && other.fields == @fields
98
+ end
99
+
100
+ def inspect
101
+ "#<#{self.class.name} fields=#{@fields.inspect}>"
102
+ end
103
+ end
104
+
105
+ class ListType < Type
106
+ attr_reader :element_field
107
+
108
+ def initialize(element_field)
109
+ @element_field = element_field
110
+ end
111
+
112
+ def ==(other)
113
+ other.is_a?(self.class) && other.element_field == @element_field
114
+ end
115
+
116
+ def inspect
117
+ "#<#{self.class.name} element_field=#{@element_field.inspect}>"
118
+ end
119
+ end
120
+
121
+ class MapType < Type
122
+ attr_reader :key_field, :value_field
123
+
124
+ def initialize(key_field, value_field)
125
+ @key_field = key_field
126
+ @value_field = value_field
127
+ end
128
+
129
+ def ==(other)
130
+ other.is_a?(self.class) && other.key_field == @key_field && other.value_field == @value_field
131
+ end
132
+
133
+ def inspect
134
+ "#<#{self.class.name} key_field=#{@key_field.inspect}, value_field=#{@value_field.inspect}>"
135
+ end
136
+ end
137
+ end
@@ -1,3 +1,3 @@
1
1
  module Iceberg
2
- VERSION = "0.11.2"
2
+ VERSION = "0.12.0"
3
3
  end
data/lib/iceberg.rb CHANGED
@@ -5,13 +5,18 @@ rescue LoadError
5
5
  require "iceberg/iceberg"
6
6
  end
7
7
 
8
+ # stdlib
9
+ require "date"
10
+
8
11
  # modules
9
12
  require_relative "iceberg/catalog"
10
- require_relative "iceberg/schema"
13
+ require_relative "iceberg/result"
11
14
  require_relative "iceberg/table"
12
15
  require_relative "iceberg/table_scan"
13
16
  require_relative "iceberg/static_table"
14
17
  require_relative "iceberg/table_definition"
18
+ require_relative "iceberg/transforms"
19
+ require_relative "iceberg/types"
15
20
  require_relative "iceberg/version"
16
21
 
17
22
  # catalogs
@@ -25,14 +30,14 @@ module Iceberg
25
30
  class Error < StandardError; end
26
31
  class InvalidDataError < Error; end
27
32
  class NamespaceAlreadyExistsError < Error; end
28
- class NamespaceNotFoundError < Error; end
33
+ class NoSuchNamespaceError < Error; end
34
+ class NoSuchTableError < Error; end
29
35
  class TableAlreadyExistsError < Error; end
30
- class TableNotFoundError < Error; end
31
36
  class UnsupportedFeatureError < Error; end
32
37
 
33
38
  class Todo < Error
34
- def message
35
- "not implemented yet"
39
+ def initialize(message = "not implemented yet")
40
+ super(message)
36
41
  end
37
42
  end
38
43
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iceberg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.2
4
+ version: 0.12.0
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-05-14 00:00:00.000000000 Z
11
+ date: 2026-07-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: andrew@ankane.org
@@ -31,13 +31,15 @@ files:
31
31
  - lib/iceberg/glue_catalog.rb
32
32
  - lib/iceberg/memory_catalog.rb
33
33
  - lib/iceberg/rest_catalog.rb
34
+ - lib/iceberg/result.rb
34
35
  - lib/iceberg/s3_tables_catalog.rb
35
- - lib/iceberg/schema.rb
36
36
  - lib/iceberg/sql_catalog.rb
37
37
  - lib/iceberg/static_table.rb
38
38
  - lib/iceberg/table.rb
39
39
  - lib/iceberg/table_definition.rb
40
40
  - lib/iceberg/table_scan.rb
41
+ - lib/iceberg/transforms.rb
42
+ - lib/iceberg/types.rb
41
43
  - lib/iceberg/version.rb
42
44
  homepage: https://github.com/ankane/iceberg-ruby
43
45
  licenses:
@@ -1,10 +0,0 @@
1
- module Iceberg
2
- class Schema
3
- attr_reader :fields, :schema_id
4
-
5
- def initialize(fields, schema_id: nil)
6
- @fields = fields
7
- @schema_id = schema_id
8
- end
9
- end
10
- end